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..
fuente

Respuestas:
Caracoles, 15 bytes
Pruébalo en línea!
1significa supervivencia mientras que0significa muerte.Dado que es imposible escapar del fuego, nunca es útil tratar de evitarlo. La mejor ruta es siempre una línea recta. Por lo tanto, solo hay cuatro opciones posibles de ruta de escape. Para determinar si una dirección es segura, verificamos si hay alguno
Fen el "cono de fuego" que apunte en esa dirección.fuente
Python 2 ,
283218209208 bytesPruébalo en línea!
Toma de entrada como una cadena separada saltos de línea, y vuelve
True/FalseparaDead/AliveFunciona marcando cada dirección (udlr) para ver si hay
Fira mirando hacia afuera:Ejemplo:
Entrada:
Comprobaciones de fuego:
Si todas las direcciones contienen fuego, mueres, de lo contrario hay un escape.
Editar: Volver a tomar una cadena como entrada, y ahora solo verifica arriba / derecha, pero también verifica la entrada hacia atrás (hacia abajo / izquierda)
Ahorré muchos bytes gracias al Sr. Xcoder y Felipe Nardi Batista
fuente
JavaScript, 174 bytes
Formato de entrada:
F, 1 para., 0 paraOSalida:
Intentalo:
Mostrar fragmento de código
Considere un autómata celular. Hay 3 estados para una celda
O(accesible por personas),F(capturado),.(nada acaba de suceder). La regla para crear la próxima generación es:Una vez que hay una célula en el borde
O, la gente sobrevive. Si esto no sucedió en cantidad suficiente, la gente murió.fuente
Octava, 71 bytes
Pruébalo en línea!
o
¡Verifique todos los casos de prueba!
Formato de entrada:
1para.,2paraOy3paraFSalida:
trueyfalseExplicación:
Explicación:
fuente
Retina , 243 bytes
Pruébalo en línea! Requiere que el fondo sea espacios en lugar de
.s (o podría usarse algún otro personaje seguro para regexp). Explicación:Si hay un
Oen cualquier borde, elimine todo lo demás (caso de supervivencia)Coloque un
#en cualquier espacio sobre un existenteO.Y a
#en cualquier espacio debajo de un existenteO.Cambie
#s aOs, y también cualquier espacio a la izquierda o derecha de un existenteO.Coloque
#s sobre cualquierFs existente . Estos pueden sobrescribirOs, así como espacios.Coloque
#s debajo de cualquierFs existente , también sobrescribiendoOs, así como espacios.Cambie
#s aFs, y también cualquierOespacio a la izquierda o derecha de un existenteF. Repita hasta que losFs hayan consumido todo.Regrese
1para sobrevivir,0si no.fuente