Les gars ASCII décalés aiment changer de ASCII Ii
:
>_> <_< >_< <_>
Avec une série de types décalés, des lignes espacées ou séparées, déplacez-le Ii
d'un côté à l'autre, à gauche du mur et à droite du ciel:
Ii
Le shifter le plus court remporte le prix.
Tu peux répéter s'il te plait?
Ecrivez un programme ou une fonction prenant une chaîne d'une liste arbitraire de ces quatre émoticônes ASCII, séparés par un espace ou une nouvelle ligne (avec une nouvelle ligne de fin optionnelle):
>_>
<_<
>_<
<_>
Par exemple, l’entrée peut être
>_> >_> <_>
ou
>_> >_> <_>
(La méthode que vous soutenez est à vous.)
Chaque émoticône effectue une action différente sur les caractères I
et i
, qui commencent toujours ainsi:
Ii
>_>
décaleI
vers la droite par un, si possible, puis versi
la droite par un.<_<
décaleI
à gauche par un, si possible, puisi
à gauche par un, si possible.>_<
décaleI
si possible vers la droite, puis si possiblei
vers la gauche.<_>
décaleI
à gauche par un, si possible, puisi
à droite par un.
I
ne peut pas être déplacé à gauche s'il se trouve au bord gauche de la ligne (comme il en a été initialement), ni à droite s'il se i
trouve directement à sa droite (comme il en était initialement).
i
ne peut pas être déplacé à gauche s'il I
est directement à sa gauche (comme au début), mais peut toujours être déplacé à droite.
Notez qu'avec ces règles, I
restera toujours à gauche de i
, et I
est tenté d'être déplacé avant i
pour tous les émoticônes.
Votre programme ou votre fonction doit imprimer ou renvoyer une chaîne de la dernière Ii
ligne après avoir appliqué tous les décalages dans l'ordre indiqué, en utilisant des espaces (
) ou des périodes ( .
) pour les espaces vides. Les espaces ou les points de fin et un seul nouveau trait sont autorisés dans la sortie. Ne mélangez pas les espaces et les périodes.
Par exemple, l'entrée
>_> >_> <_>
a sortie
I...i
parce que les changements s'appliquent comme
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Le code le plus court en octets gagne. Tiebreaker est la réponse la plus votée.
Cas de test
#[id number]
[space separated input]
[output]
Utiliser .
pour plus de clarté.
#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