Il est temps pour un autre défi de labyrinthe, mais pas comme vous le savez.
Les règles de ce défi sont un peu différentes de la plupart des défis de labyrinthe. Les types de tuiles sont définis comme suit:
S
: L'emplacement sur le labyrinthe où vous commencezE
: L'endroit où vous essayez de vous rendre0
: Mur que vous ne pouvez pas traverser+
: Plancher que vous pouvez traverser
Vous pouvez voyager dans l'une des six directions: haut-gauche, haut-droite, gauche, droite, bas-gauche ou bas-droite.
\ /
-S-
/ \
Le labyrinthe ne s'enroule pas. Le but est de trouver la chaîne de chemin la plus courte pour aller de S
à E
.
Contribution:
L'entrée est des lignes séparées par des espaces comme les labyrinthes montrés. Aucun espace de fin ne suivra une ligne.
Sortie:
Une chaîne de R
, L
et F
où
R
vous fait pivoter à droite (dans le sens des aiguilles d'une montre) de 60 degrésL
vous fait tourner à gauche (dans le sens antihoraire) de 60 degrésF
vous déplace d'un espace dans la direction vers laquelle vous pointez
Vous commencez à pointer left-up
Le chemin le plus court est compté par la longueur de la chaîne produite et non par le nombre de positions visitées. Votre programme doit imprimer le chemin le plus court comme solution.
Si le labyrinthe est insoluble, vous devez sortir Invalid maze!
.
( >>>
est la sortie)
0 0 0 0
0 + 0 + 0
0 0 0 + + 0
0 + 0 + 0 + 0
0 0 + + 0 0 + 0
0 0 + 0 + 0 0 + 0
E 0 + 0 0 + + 0
+ + 0 + 0 + 0
0 0 0 0 0 +
+ 0 + + +
0 S 0 0
>>>RFRFFLFLFRFFLFFFLFLFFRFLFLFRFRFRF
+ 0 0 0 0 0 0
0 0 0 0 0 + + 0
0 0 E 0 + 0 0 + 0
0 0 0 0 0 0 0 +
0 + 0 0 + + +
0 0 + + 0 0
S + 0 0 0
>>>Invalid maze!
0 E S
>>>LF
E + 0
0 + + +
0 0 S
+ +
>>>FFLF
E
0 +
0 + +
0 +
S
>>>RFFLFF
0 E + 0 0
0 + 0 0 + +
+ 0 + + + 0
+ 0 + 0 + 0
+ + + 0 S
>>>FFLFLFFRFRFFRFF
E 0 + + 0
0 + 0 + + 0
+ + + 0 + 0
+ 0 0 0 0 0
+ + + + 0
+ 0 S 0
>>>FLFFRFFRFLF
(Notez que certains labyrinthes ont d'autres solutions qui sont de la même longueur mais ne sont pas répertoriées ici)