Ai ragazzi di ASCII con gli occhi sfuggiti piace spostare quelli di ASCII Ii
:
>_> <_< >_< <_>
Data una serie di ragazzi shifty, distanziati o separati da linee, sposta il Ii
lato da un lato, lascia il muro e destra il cielo:
Ii
Il cambio più corto vince il premio.
Che cosa?
Scrivi un programma o una funzione che includa una stringa di un elenco arbitrario di queste quattro emoticon ASCII, separate da spazio o newline (con una newline finale opzionale):
>_>
<_<
>_<
<_>
Ad esempio, l'input potrebbe essere
>_> >_> <_>
o
>_> >_> <_>
(Il metodo che supporti dipende da te.)
Ogni emoticon esegue un'azione diversa sui personaggi I
e i
, che iniziano sempre così:
Ii
>_>
si spostaI
a destra di uno, se possibile, quindi si spostai
a destra di uno.<_<
si spostaI
a sinistra di uno, se possibile, quindi si spostai
a sinistra di uno, se possibile.>_<
spostaI
a destra di uno, se possibile, quindi spostai
a sinistra di uno, se possibile.<_>
spostaI
a sinistra di uno, se possibile, quindi spostai
a destra di uno.
I
non può essere spostato a sinistra se si trova sul bordo sinistro della linea (com'è inizialmente) e non può essere spostato a destra se si i
trova direttamente alla sua destra (com'è inizialmente).
i
non può essere spostato a sinistra se I
è direttamente alla sua sinistra (com'è inizialmente), ma può sempre essere spostato a destra.
Nota che con queste regole I
rimarrà sempre alla sinistra di i
, e I
si tenta di essere spostato prima i
per tutte le emoticon.
Il programma o la funzione deve stampare o restituire una stringa della Ii
riga finale dopo aver applicato tutti i turni nell'ordine indicato, utilizzando spazi (
) o punti ( .
) per spazio vuoto. Spazi o periodi finali e una sola nuova riga finale sono consentiti nell'output. Non mescolare spazi e punti.
Ad esempio, l'input
>_> >_> <_>
ha prodotto
I...i
perché i turni si applicano come
start |Ii >_> |I.i >_> |.I.i <_> |I...i
Vince il codice più breve in byte. Tiebreaker è la risposta più votata.
Casi test
#[id number]
[space separated input]
[output]
Usando .
per chiarezza.
#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