introduction
Jonny veut jouer à Frogger. Cependant, il n'est pas très bon. En fait, il essaiera seulement d'avancer, et seulement après que les plateformes auront bougé.
Découvrez si la grenouille de Jonny parvient à atteindre la fin du chemin ou si elle meurt sur son chemin.
Défi
Le programme recevra en entrée une grille Frogger composée de 0
s et 1
s, au format suivant:
- La grille aura une largeur et une longueur aléatoires, et au moins 3x3
1
représente les plateformes0
représente l'eauF
représente la position de départ de la grenouille- Chaque première et dernière ligne de la grille sera composée uniquement de
1
s, et ne bougera pas, et la grenouilleF
sera placée au hasard sur la dernière ligne - Chaque couche intermédiaire sera toujours en mouvement et aura un
<
ou>
à la fin de chaque ligne indiquant si elle se déplace vers la gauche ou la droite
Remplacer ces symboles par les vôtres est autorisé, tant qu'ils sont tous distincts et que vous spécifiez les remplacements dans votre réponse.
L'entrée peut être dans n'importe quel format compatible (chaîne avec sauts de ligne, tableau de chaînes, tableau de caractères, ...).
Règles du défi
- À chaque tour, toutes les plates-formes se déplaceront d'un carré, selon la direction indiquée par le signe
<
ou>
- Les plateformes réapparaissent de l'autre côté de la grille si elles sont repoussées de "l'écran"
- Si la grenouille est sur une plate-forme mobile, elle se déplacera avec elle
- Après cela, la grenouille sautera d'un carré vers la rangée supérieure. La grenouille se déplacera à chaque tour.
- La grenouille meurt si elle saute dans l'eau (
0
) ou si elle touche le côté de la grille avec une plate-forme mobile
Votre programme doit produire une valeur vraie si la grenouille survit et une valeur fausse sinon.
C'est le code-golf , donc la réponse la plus courte en octets l'emporte. Des échappatoires standard s'appliquent.
Exemples
Exemple 1
Contribution
11111
00111>
00101<
1F111
Production
1
Exécution
Tour 1:
11111
10011
01010
1F111
11111
10011
0F010
11111
Tour 2:
11111
11001
F0100
11111
11111
F1001
10100
11111
Tour 3:
11111
1F100
01001
11111
1F111
11100
01001
11111
Exemple 2
Contribution
11111
00100<
00100<
1F111
Production
0
Exécution
Tour 1:
11111
01000
01000
1F111
11111
01000
0F000
11111
Tour 2:
11111
10000
F0000
11111
11111
F0000
10000
11111
Tour 3:
11111
00001
00001
11111
<
ou >
à la fin.
0
ou attendra-t-elle la suivante 1
? S'il peut attendre, ira-t-il à chaque fois 1
, ou peut-il attendre intelligemment? C'est à dire avec le cas de test 11111 00001< 00011< 11F11
, sera-ce falsey car il saute dans l'eau ( collerette de marches ); sera-t-il falsey parce qu'il sort du cadre ( coller des étapes ); ou sera-t-elle véridique car elle attend intelligemment la deuxième plateforme avant de sauter en avant ( coller d'étapes )?
0
.
<
ou>
alors nous pouvons prendre des tableaux rectangulaires en entrée? Au fait, beau défi!