Desafío
Le has dado un mapa a un amigo que se parece un poco a esto:
|
/
|
/
|
\
|
\
D
Un mapa simple que comienza en la parte superior y termina en la parte inferior. Lamentablemente, tu amigo no lo entiende. ¿Puedes decodificar el mapa para que pueda leerlo?
Entrada
La entrada es una cadena de caracteres que consisten en |, /, \, D, ^, Y, (espacio) , y saltos de línea.
|le dice que se quede en la misma columna.\le dice que se mueva a la columna a la derecha y hacia abajo 1./le dice que se mueva a la columna a la izquierda y hacia abajo 1.Dmarca el destino^(si está presente) habla de una división en el camino.Y(si está presente) habla de una unión de caminos. Trátelo como a|.
La entrada se organizará de modo que haga una especie de camino:
|
|
\
|
^
/ \
/ |
D |
Siempre habrá un espacio entre dos rutas, y todas las rutas volverán a unirse o llegarán a la última línea de la entrada. Solo habrá una división por mapa. No hay límite para la longitud del mapa de entrada. Nunca habrá más de dos caminos.
Salida
La salida debe ser una cadena de direcciones.
- " L " debería decirle a tu amigo que mueva a la izquierda y dé un paso adelante.
- " R " debería decirle a tu amigo que se mueva a la derecha y dé un paso adelante.
- " F " debería decirle a tu amigo que avance 1 paso.
Para el mapa de ejemplo de entrada, la salida sería la siguiente:
F F L F R R R
Tenga en cuenta que su amigo comienza en la parte superior del mapa y mira hacia abajo. Da las instrucciones desde su perspectiva. Para una instancia de "^", su programa debe poder elegir la ruta que conduce al destino (D). Si las dos rutas se recombinan, su programa debe elegir la ruta más recta (la que tenga más |s) a seguir. Direcciones deben estar separados por espacios, y deben terminar en D .
Ejemplos
Entrada
|
|
\
\
^
/ |
| |
\ |
\ \
\ \
\ /
Y
D
Salida
F F L L L F F F L L R F
Como la ruta más a la izquierda contiene solo 1 |, utilizamos la ruta más a la derecha que tiene 3.
Entrada
\
|
/
|
\
|
/
D
Salida
L F R F L F R
Entrada
/
\
/
\
^
\ \
D \
Salida
R L R L R L
Otros detalles
- Este es el código de golf, por lo que la persona con el código más corto para el próximo miércoles 19 de agosto gana.
- Retroalimentación constructiva bienvenida y muy apreciada.
- Parcialmente inspirado en Un mapa del tesoro escondido
- Siéntase libre de cambiar el título a algo más creativo.
- Si encuentra errores que cometí, corríjalos.
- Y por supuesto, diviértete.
¡Gracias!
Tal vez un poco tarde, ¡pero UndefinedFunction es la codificación ganadora en JavaScript! Gracias a todos los que entraron. No se aceptarán otras entradas.
Lpara el ^y dos Lpara los dos /? ¿Y por qué agregaste dos más Fal final del Yejemplo?
L L, que creo que debería serL L L. El ejemplo conYtodavía tiene un1al final y también parece tener otros errores. Leo el mapa comoF F R R R F F F R R L Fsi entendiera las reglas correctamente.