Scrivere un programma o una funzione che includa una stringa a riga singola non vuota di caratteri ASCII stampabili escluso lo spazio:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Si può presumere che l'input sia valido.
Sulla base dell'input, disegna una nuova stringa disposta su una griglia testuale di spazi e newline seguendo le regole della grafica della tartaruga in cui la tartaruga occupa sempre uno spazio della griglia e può solo affrontare le direzioni cardinali.
Stampa il primo carattere nella stringa di input sulla griglia di testo. La tartaruga inizia qui rivolta a destra. Scorrere sul resto dei caratteri nella stringa di input (fermandosi solo se la tartaruga si blocca), ripetendo questo processo:
Se i 4 spazi della griglia direttamente adiacenti alla tartaruga sono tutti riempiti (ovvero nessuno di essi è uno spazio), interrompere l'iterazione. La tartaruga è bloccata e la griglia è completa come può essere.
Guarda il carattere corrente nell'input rispetto al carattere precedente:
Se il personaggio attuale è lessicale prima del precedente, ruota la tartaruga di un quarto di giro a sinistra.
Se il personaggio attuale è lessicale dopo il precedente, ruota la tartaruga di un quarto di giro a destra.
Se il personaggio attuale è uguale al precedente, non ruotare la tartaruga.
Se lo spazio della griglia rivolto verso la tartaruga non è vuoto (ovvero non uno spazio), ruotare ripetutamente la tartaruga di un quarto di giro a sinistra fino a quando non si trova di fronte a uno spazio vuoto.
Sposta la tartaruga di un passo avanti nella direzione in cui è rivolta e stampa il personaggio attuale sulla griglia nella nuova posizione della tartaruga.
Stampa o restituisce la stringa di griglia di testo risultante senza righe o colonne estranee di spazi bianchi. Le linee possono avere spazi finali fino alla colonna più a destra con un non spazio, ma non oltre. È consentita una singola riga finale finale.
Vince il codice più breve in byte.
Esempio
Ecco tutti i passaggi dell'input spattuuxze
. I ^V<>
caratteri mostrano la direzione della tartaruga sta affrontando, essi sono non parte della ingresso o uscita.
s>
^
p
s
<ap
s
^
t
ap
s
^
t
t
ap
s
tu>
t
ap
s
tuu>
t
ap
s
tuu
t x
apV
s
tuu
<zx
ap
s
A questo punto la tartaruga è bloccata, quindi e
non viene mai stampata e l'output finale è:
tuu
tzx
ap
s
Di seguito è riportato un output simile ma non valido poiché ha una colonna iniziale non necessaria di spazi bianchi:
tuu
tzx
ap
s
Casi test
spattuuxze
tuu
tzx
ap
s
spattuuxxze
tuu
t x
apx
sze
1111111
1111111
ABCDEFGHIJKLMNOP
PEFG
ODAH
NCBI
MLKJ
`_^]\[ZYXWVUTSR
^_RS
\]`UT
[ZWV
YX
Woo!
W
o
o!
woo!
!o
o
w
Wheeee
W
heeee
banana
a
an
an
b
Turtle
T
ure
tl
turTle
e
tTl
ur
(Dimmi subito se qualcuno di questi sembra sbagliato.)
PONMLKJIHGFEDCBA
, dato che il risultato non è solo un quadrato e contrasta ABCDEFGHIJKLMNOP
per evidenziare l'asimmetria nelle regole.