Tempo per un'altra sfida di labirinto, ma non come la conosci.
Le regole per questa sfida sono leggermente diverse rispetto alla maggior parte delle sfide del labirinto. I tipi di piastrelle sono definiti come segue:
S
: La posizione sul labirinto da cui iniziE
: La posizione che stai cercando di raggiungere0
: Muro che non puoi attraversare+
: Piano che puoi attraversare
Puoi viaggiare in una delle sei direzioni: su-sinistra, su-destra, sinistra, destra, giù-sinistra o giù-destra.
\ /
-S-
/ \
Il labirinto non si avvolge. L'obiettivo è trovare la stringa del percorso più breve da cui S
raggiungere E
.
Ingresso:
L'input è rappresentato da linee separate da spazi come i labirinti mostrati. Nessuno spazio finale seguirà una linea.
Produzione:
Una stringa di R
, L
e F
dove
R
ruota a destra (in senso orario) di 60 gradiL
ruota di sinistra (in senso antiorario) di 60 gradiF
ti sposta di uno spazio nella direzione in cui stai puntando
Inizi a indicare left-up
Il percorso più breve viene conteggiato dalla lunghezza della stringa prodotta, non dal numero di posizioni visitate. Il programma deve stampare il percorso più breve come soluzione.
Se il labirinto è irrisolvibile, è necessario eseguire l'output Invalid maze!
.
( >>>
è l'output)
0 0 0 0
0 + 0 + 0
0 0 0 + + 0
0 + 0 + 0 + 0
0 0 + + 0 0 + 0
0 0 + 0 + 0 0 + 0
E 0 + 0 0 + + 0
+ + 0 + 0 + 0
0 0 0 0 0 +
+ 0 + + +
0 S 0 0
>>>RFRFFLFLFRFFLFFFLFLFFRFLFLFRFRFRF
+ 0 0 0 0 0 0
0 0 0 0 0 + + 0
0 0 E 0 + 0 0 + 0
0 0 0 0 0 0 0 +
0 + 0 0 + + +
0 0 + + 0 0
S + 0 0 0
>>>Invalid maze!
0 E S
>>>LF
E + 0
0 + + +
0 0 S
+ +
>>>FFLF
E
0 +
0 + +
0 +
S
>>>RFFLFF
0 E + 0 0
0 + 0 0 + +
+ 0 + + + 0
+ 0 + 0 + 0
+ + + 0 S
>>>FFLFLFFRFRFFRFF
E 0 + + 0
0 + 0 + + 0
+ + + 0 + 0
+ 0 0 0 0 0
+ + + + 0
+ 0 S 0
>>>FLFFRFFRFLF
(Nota che alcuni labirinti hanno altre soluzioni che hanno la stessa lunghezza ma non sono elencate qui)