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 Ii
Seite 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 I
und aus i
, die immer so beginnen:
Ii
>_>
verschiebt sichI
nach Möglichkeit um eins nach rechts und danni
um eins nach rechts.<_<
verschiebtI
sich, wenn möglich, um eins nach links und dann, wenn möglich,i
um eins nach links.>_<
verschiebt sichI
nach Möglichkeit um eins nach rechts und danni
nach Möglichkeit um eins nach links.<_>
verschiebt sichI
nach Möglichkeit um eins nach links und danni
um eins nach rechts.
I
kann 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 i
es sich direkt nach rechts befindet (wie es anfänglich ist).
i
Kann nicht nach links verschoben werden, wenn er I
direkt nach links liegt (wie am Anfang), kann aber immer nach rechts verschoben werden.
Beachten Sie, dass diese Regeln I
immer links von bleiben i
und I
versucht werden, sie i
für alle Emoticons vorher zu verschieben .
Ihr Programm oder Ihre Funktion muss eine Zeichenfolge der letzten Ii
Zeile 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...i
da 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