Es hora de otro desafío de laberinto, pero no como lo sabes.
Las reglas para este desafío son un poco diferentes a la mayoría de los desafíos de laberintos. Los tipos de mosaico se definen de la siguiente manera:
S
: La ubicación en el laberinto donde comienzasE
: La ubicación a la que intenta llegar0
: Muro que no puedes cruzar+
: Piso que puedes cruzar
Puede viajar en una de las seis direcciones: arriba a la izquierda, arriba a la derecha, izquierda, derecha, abajo a la izquierda o abajo a la derecha.
\ /
-S-
/ \
El laberinto no se envuelve. El objetivo es encontrar la cadena de ruta más corta para llegar S
a E
.
Entrada:
La entrada es líneas separadas por espacios como los laberintos mostrados. Ningún espacio final seguirá una línea.
Salida:
Una cadena de R
, L
y F
donde
R
te gira a la derecha (en sentido horario) 60 gradosL
gira a la izquierda (en sentido antihorario) 60 gradosF
te mueve un espacio en la dirección que estás apuntando
Empiezas a señalar left-up
La ruta más corta se cuenta por la longitud de la cadena producida, no por el número de posiciones visitadas. Su programa debe imprimir la ruta más corta como la solución.
Si el laberinto no se puede resolver, debe salir Invalid maze!
.
( >>>
es la salida)
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
(Tenga en cuenta que algunos de los laberintos tienen otras soluciones que tienen la misma longitud pero que no se enumeran aquí)