Introducción
Jonny quiere jugar a Frogger. Sin embargo, no es muy bueno. De hecho, solo intentará avanzar, y solo después de que las plataformas se hayan movido.
Averigua si la rana de Jonny logra llegar al final del camino o si muere en su camino.
Desafío
El programa se recibe como entrada una rejilla Frogger compuesta por 0
s y 1
s, con el siguiente formato:
- La cuadrícula tendrá un ancho y largo aleatorio, y al menos 3x3
1
representa plataformas0
representa aguaF
representa la posición inicial de la rana- Cada primera y última línea de la cuadrícula estará compuesta solo por
1
s, y no se moverá, y la ranaF
se colocará al azar en la última línea - Cada capa intermedia siempre se moverá y tendrá un
<
o>
al final de cada línea que indica si se mueve hacia la izquierda o hacia la derecha
Está permitido reemplazar estos símbolos con los suyos, siempre que sean distintos y especifique los reemplazos en su respuesta.
La entrada puede estar en cualquier formato compatible (cadena con saltos de línea, matriz de cadenas, matriz de caracteres, ...).
Reglas de desafío
- Cada turno, todas las plataformas se moverán una casilla, según la dirección indicada por el signo
<
o>
- Las plataformas reaparecen en el otro lado de la cuadrícula si se las empuja fuera de la "pantalla"
- Si la rana está en una plataforma en movimiento, se moverá junto con ella
- Después de eso, la rana saltará un cuadrado hacia la fila superior. La rana se moverá cada turno.
- La rana muere si salta al agua (
0
) o toca el costado de la cuadrícula junto con una plataforma móvil
Su programa tiene que generar un valor verdadero si la rana sobrevive y un valor falso de lo contrario.
Este es el código de golf , por lo que gana la respuesta más corta en bytes. Se aplican lagunas estándar.
Ejemplos
Ejemplo 1
Entrada
11111
00111>
00101<
1F111
Salida
1
Ejecución
Turno 1:
11111
10011
01010
1F111
11111
10011
0F010
11111
Vuelta 2:
11111
11001
F0100
11111
11111
F1001
10100
11111
Turno 3:
11111
1F100
01001
11111
1F111
11100
01001
11111
Ejemplo 2
Entrada
11111
00100<
00100<
1F111
Salida
0
Ejecución
Turno 1:
11111
01000
01000
1F111
11111
01000
0F000
11111
Vuelta 2:
11111
10000
F0000
11111
11111
F0000
10000
11111
Turno 3:
11111
00001
00001
11111
<
o >
al final.
0
frente, o esperará al siguiente 1
? Si puede esperar, ¿avanzará cada vez 1
o puede esperar inteligentemente? Es decir, con el caso de prueba 11111 00001< 00011< 11F11
, ¿será falsey porque salta al agua ( pastebin de pasos ); será falsey porque se mueve fuera del marco ( pastebin de pasos ); ¿O será sincero porque espera de manera inteligente la segunda plataforma antes de saltar ( pegar pasos )?
0
.
<
o>
así podemos tomar matrices rectangulares como entrada? Por cierto, ¡buen desafío!