El rey Julián necesita atravesar la jungla, pero se siente vago. Quiere una computadora para poder calcular una ruta a través de la jungla para él.
Usando STDIN, obtenga un mapa de la jungla para que la computadora se rompa. Seguirá el siguiente formato:
01001E
010110
000P00
1100J1
S00111
La forma en que funciona el mapa de la jungla es:
0
es terreno por el que Julian puede moverse.
1
Es densa selva infranqueable.
P
es un área con depredadores, que debes evitar a toda costa.
J
Es una jungla relativamente gruesa. Los secuaces de Julian pueden atravesar uno de estos antes de cansarse.
S
es donde comienza Julian. Puede estar en cualquier parte del mapa.
E
es donde Julian quiere ir; El final del camino. También puede estar en cualquier parte del mapa, como cualquier otro mosaico.
Cada personaje es un mosaico en el mapa. Los saltos de línea indican una nueva fila de mosaicos. Si STDIN en su idioma no admite saltos de línea, el salto de línea debe reemplazarse por un espacio para indicar una nueva fila.
Para moverse entre los mosaicos, debe generar una cadena usando STDOUT que contenga los siguientes caracteres especiales:
F
- Adelante
B
- hacia atrás
L
- Gire a Julian a la izquierda (90 grados en sentido antihorario)
R
- Gire Julian a la derecha (90 grados en el sentido de las agujas del reloj)
M
- Los esbirros destruyen una J
ficha 1 ficha hacia delante de Julian, si hay una (M
solo despeja el azulejo, aún tienes que moverte sobre él)
Un posible resultado sería:
RFFLFRFMFLFRFLFF
Lo que resuelve el mapa de arriba.
Notas:
Si su programa genera una solución que afecta a los depredadores, se acabó el juego.
Si golpeas la jungla infranqueable, simplemente regresas a donde estabas antes de toparte con la jungla densa, mirando de la misma manera. (Hacia la jungla)
Julian comienza a mirar hacia arriba. (^ De esa manera ^)
La salida no tiene que ser la solución más rápida,
FFF
yFBFBFBFBFBFFF
son iguales. Sin embargo, generar la solución más rápida posible proporciona un bono de recuento de bytes de -10%.Si un mapa no es válido, STDOUT 'Mapa no válido'. (Eso incluye si el mapa no tiene solución)
Un mapa no puede tener filas o columnas de diferentes longitudes; eso lo hace inválido.
Su respuesta debería seguir este formato:
#Language name, *n* bytes
code
Explanation (optional)
Este es el código de golf , por lo que gana el código más corto en bytes.
P
mosaico realmente agrega algo diferente de un1
mosaico? Realmente no puedo imaginar una solución plausible que los trate de manera diferente.Respuestas:
Groovy, 656 bytes
Eso fue demasiado largo ...
Salida para el laberinto:
Sin golf:
Intentaré esto nuevamente en Python pronto para ver si puedo acortarlo aún más.
fuente