Inspirado por esto .
Fondo
El granjero malvado ha decidido quemar su campo de trigo para subir los precios. Para garantizar la destrucción total, también ha empapado su campo en gasolina. Aún más desafortunadamente, estabas caminando en el campo cuando estaba encendido, y debes salir rápidamente para sobrevivir.
Reto
Dado un campo que contiene trigo, fuego y su ubicación, determine si puede salir del campo a tiempo.
Un campo consiste en trigo (aquí representado por .
) y fuego ( F
). Aquí su ubicación está marcada con un O
. Por ejemplo:
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
Cada segundo te mueves a cualquier celda adyacente (pero no en diagonal), y cada fuego se extiende a cada celda adyacente. Si no puedes moverte a una celda que no se incendiará, morirás. Si logras salir del campo, sobrevives. Veamos qué sucede en este ejemplo:
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
..FFF.FF
FF.F...F
FF......
FFF.....
.F.F.O..
..FFF...
.F.F..F.
FFF..FFF
FFFFFFFF
FFFFF.FF
FFFF...F
FFFF....
FF.FF.O.
.FFFFFF.
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFF.FF
FFFFF.FF
FFFFFFFO
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFFO <-- you made it out and survived, barely
FFFFFFFF
FFFFFFFF
FFFFFFFF
Reglas
- Su entrada es el campo como una cuadrícula. Puede elegir cualquier formato de entrada, incluida una cadena con separadores de línea o una matriz 2D.
- Es posible que no se tome como entrada los lugares de fuego y / o usted mismo.
- Puede usar 3 valores distintos como trigo, fuego y su posición, incluidas las no cadenas para la entrada de matriz.
- Los campos siempre tienen un tamaño de al menos 1x1, son rectangulares y no contienen caracteres no válidos.
- Cualquier campo contendrá exactamente uno del valor que representa su ubicación, y cualquier otra posición puede o no ser activada.
- Su salida es uno de los dos valores distintos para "sobrevivir" o "morir", como es habitual en el problema de decisión .
- Se aplican reglas estándar de código de golf .
Casos de prueba
Sobrevivió
O
....
.O..
....
FFFFF
.....
..O..
.....
FFFF
FFFO
FFFF
.F....
......
......
.F....
..O...
.FF...
.F....
..FF..
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
No sobrevivio
FFF
FOF
FFF
F.F
.O.
F.F
....F
.....
..O..
.....
F....
.F....F.
........
........
F..O....
........
.....F..
...F...F
F......F
........
.F......
....O...
...F....
........
.F....F.
F..F
.O..
FF..