Shifty-Eyes ASCII-Leute lieben es, ASCIIs zu verschieben Ii:
>_> <_< >_< <_>
Verschieben Sie bei einer Reihe von Shifty-Typen in Abständen oder mit getrennten Linien die IiSeite zu Seite, lassen Sie die Wand links und den Himmel rechts:
Ii
Der kürzeste Schalthebel gewinnt den Preis.
Sag was?
Schreiben Sie ein Programm oder eine Funktion, die eine Zeichenfolge einer beliebigen Liste dieser vier ASCII-Emoticons enthält, entweder durch Leerzeichen oder durch Zeilenumbrüche getrennt (mit optionalem abschließendem Zeilenumbruch):
>_>
<_<
>_<
<_>
Zum Beispiel könnte die Eingabe sein
>_> >_> <_>oder
>_> >_> <_>(Die von Ihnen unterstützte Methode liegt bei Ihnen.)
Jedes Emoticon führt eine andere Aktion für die Zeichen Iund aus i, die immer so beginnen:
Ii
>_>verschiebt sichInach Möglichkeit um eins nach rechts und dannium eins nach rechts.<_<verschiebtIsich, wenn möglich, um eins nach links und dann, wenn möglich,ium eins nach links.>_<verschiebt sichInach Möglichkeit um eins nach rechts und danninach Möglichkeit um eins nach links.<_>verschiebt sichInach Möglichkeit um eins nach links und dannium eins nach rechts.
Ikann nicht nach links verschoben werden, wenn es sich am linken Rand der Linie befindet (wie es anfänglich ist), und kann nicht nach rechts verschoben werden, wenn ies sich direkt nach rechts befindet (wie es anfänglich ist).
iKann nicht nach links verschoben werden, wenn er Idirekt nach links liegt (wie am Anfang), kann aber immer nach rechts verschoben werden.
Beachten Sie, dass diese Regeln Iimmer links von bleiben iund Iversucht werden, sie ifür alle Emoticons vorher zu verschieben .
Ihr Programm oder Ihre Funktion muss eine Zeichenfolge der letzten IiZeile drucken oder zurückgeben , nachdem alle Verschiebungen in der angegebenen Reihenfolge angewendet wurden, wobei Leerzeichen ( ) oder Punkte ( .) als Leerzeichen verwendet werden. Nachgestellte Leerzeichen oder Punkte und eine einzelne nachgestellte Zeile sind in der Ausgabe optional zulässig. Mischen Sie keine Leerzeichen und Punkte.
Zum Beispiel die Eingabe
>_> >_> <_>hat ausgegeben
I...ida gelten die verschiebungen gerne
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Der kürzeste Code in Bytes gewinnt. Tiebreaker ist höher gestimmte Antwort.
Testfälle
#[id number]
[space separated input]
[output]
Gebrauch .für Klarheit.
#0
[empty string]
Ii
#1
>_>
I.i
#2
<_<
Ii
#3
>_<
Ii
#4
<_>
I.i
#5
>_> >_>
.I.i
#6
>_> <_<
Ii
#7
>_> >_<
.Ii
#8
>_> <_>
I..i
#9
<_< >_>
I.i
#10
<_< <_<
Ii
#11
<_< >_<
Ii
#12
<_< <_>
I.i
#13
>_< >_>
I.i
#14
>_< <_<
Ii
#15
>_< >_<
Ii
#16
>_< <_>
I.i
#17
<_> >_>
.I.i
#18
<_> <_<
Ii
#19
<_> >_<
.Ii
#20
<_> <_>
I..i
#21
>_> >_> <_>
I...i
#22
<_> >_> >_> >_> <_> <_<
.I...i
#23
<_> >_> >_> >_> <_> <_< >_< <_< >_<
..Ii
#24
>_> >_< >_> >_> >_> >_> >_> >_> <_> <_> <_<
...I.....i
