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 Iid'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 Iet i, qui commencent toujours ainsi:
Ii
>_>décaleIvers la droite par un, si possible, puis versila droite par un.<_<décaleIà gauche par un, si possible, puisià gauche par un, si possible.>_<décaleIsi possible vers la droite, puis si possibleivers la gauche.<_>décaleIà gauche par un, si possible, puisià droite par un.
Ine 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 itrouve directement à sa droite (comme il en était initialement).
ine peut pas être déplacé à gauche s'il Iest directement à sa gauche (comme au début), mais peut toujours être déplacé à droite.
Notez qu'avec ces règles, Irestera toujours à gauche de i, et Iest tenté d'être déplacé avant ipour tous les émoticônes.
Votre programme ou votre fonction doit imprimer ou renvoyer une chaîne de la dernière Iiligne 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...iparce 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
