Inspiré par cela .
Contexte
Le mal agriculteur a décidé de brûler votre champ de blé afin de faire monter les prix. Pour assurer une destruction totale, il a également trempé votre champ dans l’essence. Encore plus malheureusement, vous vous trouviez sur le terrain quand il était allumé et vous devez sortir rapidement pour survivre.
Défi
Dans un champ contenant du blé, le feu et votre position, déterminez si vous pouvez le quitter à temps.
Un champ est constitué de blé (ici représenté par .
) et de feu ( F
). Ici votre emplacement est marqué avec un O
. Par exemple:
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
Chaque seconde, vous vous déplacez dans une cellule adjacente (mais pas en diagonale) et chaque feu se propage à chaque cellule adjacente. Si vous ne pouvez pas vous déplacer dans une cellule qui ne sera pas en feu, vous mourrez. Si vous réussissez, vous survivez. Voyons ce qui se passe dans cet exemple:
...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
Règles
- Votre entrée est le champ sous forme de grille. Vous pouvez choisir n’importe quel format d’entrée, y compris une chaîne avec séparateurs de lignes ou un tableau 2D.
- Vous ne pouvez pas prendre comme entrée les emplacements pour le feu et / ou vous-même.
- Vous pouvez utiliser 3 valeurs distinctes, telles que blé, feu et votre position, y compris les non-chaînes pour l'entrée en tableau.
- Les champs ont toujours une taille minimale de 1x1, sont rectangulaires et ne contiennent aucun caractère non valide.
- Chaque champ contiendra exactement l’une des valeurs représentant votre emplacement, et toute autre position peut ou non être déclenchée.
- Votre sortie est l’une des deux valeurs distinctes pour "vous survivez" ou "vous mourez", comme d’habitude en cas de problème de décision .
- Les règles standard de code-golf s'appliquent.
Cas de test
Survécu
O
....
.O..
....
FFFFF
.....
..O..
.....
FFFF
FFFO
FFFF
.F....
......
......
.F....
..O...
.FF...
.F....
..FF..
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
N'a pas survécu
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..
la source
Réponses:
Escargots, 15 octets
Essayez-le en ligne!
1
signifie survie alors que0
signifie mort.Puisqu'il est impossible de dépasser le feu, il n'est jamais utile d'essayer de le contourner. Le meilleur itinéraire est toujours une ligne droite. Il n'y a donc que quatre choix possibles de voie d'évacuation. Pour déterminer si une direction est sûre, nous vérifions si
F
le "cône de feu" est orienté dans cette direction.la source
Python 2 ,
283218209208 octetsEssayez-le en ligne!
Prend l'entrée en tant que chaîne de nouvelle ligne séparée et retourne
True/False
pourDead/Alive
Fonctionne en vérifiant chaque direction (udlr) de la
F
colère en regardant vers l'extérieur:Exemple:
Contribution:
Contrôles incendie:
Si toutes les directions contiennent du feu tu meurs, sinon il y a une fuite.
Éditer: Retour à la prise d'une chaîne en tant qu'entrée et vérifie maintenant uniquement la position haut / droite, mais vérifie également la saisie en arrière (donner vers le bas / gauche)
Économisé beaucoup d'octets grâce à M. Xcoder et Felipe Nardi Batista
la source
JavaScript, 174 octets
Format d'entrée:
F
, 1 pour.
, 0 pourO
Sortie:
Essayez-le:
Afficher l'extrait de code
Considérons un automate cellulaire. Il y a 3 états pour une cellule
O
(accessible par des personnes),F
(capture déclenchée),.
(rien ne s'est passé). La règle pour créer la prochaine génération est la suivante:Une fois qu'il y a une cellule sur le bord a l'
O
état, les gens survivent. Si cela ne se produisait pas en quantité suffisante, les gens mourraient.la source
Octave, 71 octets
Essayez-le en ligne!
ou
Vérifiez tous les cas de test!
Format d'entrée:
1
pour.
,2
pourO
et3
pourF
Sortie:
true
etfalse
Explication:
Explication:
la source
Rétine , 243 octets
Essayez-le en ligne! Requiert que l’arrière-plan soit constitué d’espaces plutôt que de
.
s (ou tout autre caractère sûr pour les expressions rationnelles pourrait être utilisé). Explication:S'il y a un
O
bord, effacez tout le reste (cas de survie)Placez un
#
dans n'importe quel espace au-dessus d'un existantO
.Et
#
dans n'importe quel espace en dessous d'un existantO
.Changez le
#
s enO
s, ainsi que tout espace à gauche ou à droite d'un existantO
.Placez
#
s au-dessus de toutF
art existant . Ceux-ci peuvent écraserO
s ainsi que des espaces.Placez
#
les sous tous lesF
s existants , écrasez-O
les aussi bien que les espaces.Changez le
#
s enF
s, ainsi que n'importe quelO
ou l'espace à gauche ou à droite d'un existantF
. Répétez jusqu'à ce que lesF
s ont tout consommé.Revenir
1
pour la survie,0
sinon.la source