Les labyrinthes de glace ont été l'un de mes agrafes préférées des jeux Pokémon depuis leurs débuts dans Pokémon Gold et Silver. Votre tâche sera de créer un programme qui résout ces types de problèmes.
Les labyrinthes de glace sont principalement constitués, comme leur nom l'indique, de glace. Une fois que le joueur se déplace dans une direction sur la glace, il continuera de se déplacer dans cette direction jusqu'à ce qu'il heurte un obstacle. Il y a aussi du sol qui peut être déplacé librement et empêchera tout joueur de le traverser. Le dernier obstacle est la pierre. La pierre ne peut pas occuper le même espace que le joueur et si le joueur tente d'y pénétrer, il cessera de bouger avant de pouvoir.
Vous recevrez un conteneur de valeurs bidimensionnel, comme une liste de listes ou une chaîne séparée par des sauts de ligne, contenant 3 valeurs distinctes pour chacun des 3 types de revêtements de sol (glace, sol et pierre). Vous recevrez également deux paires (ou d'autres conteneurs de deux valeurs équivalentes) qui indiquent une coordonnée de départ et d'objectif dans le labyrinthe. Ceux-ci peuvent être zéro ou un indexé.
Vous devez produire une liste de mouvements (4 valeurs distinctes avec une bijection sur N, E, S, W) qui feraient arriver le joueur à la fin une fois exécuté.
L'entrée aura toujours un périmètre de pierre fermé autour du labyrinthe afin que vous n'ayez pas à vous soucier de la sortie du labyrinthe du joueur
C'est du golf de code donc le moins d'octets gagne
Cas de test
Ici .
représentera la glace, ~
représentera le sol et O
représentera une pierre. Les coordonnées sont 1 indexées. Chaque lettre de la solution représente la direction commençant par cette lettre (par exemple N
= Nord)
Contribution
OOOOO
OO.OO
O...O
OOOOO
Start : 3,3
End : 3,2
Production
N
Contribution
OOOOOOOOOOOOOOOOO
O........O.....OO
O...O..........OO
O.........O....OO
O.O............OO
OO.......O.....OO
O.............OOO
O......O.......~O
O..O...........~O
O.............OOO
O.......O......OO
O.....O...O....OO
O..............OO
OOOOOOOOOOOOOO~~O
OOOOOOOOOOOOOOOOO
Start : 15,12
End : 16,8
Production
N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N
Contribution
OOOOOOOOOOOOOOOO
O~~~~~OOOOO~~~~O
O~~O~OOOOOOO~~OO
O...O..........O
O........O.....O
O..............O
OO.............O
O.............OO
O....~....O....O
O..............O
O..............O
OOOOOOOOOOOOOOOO
Start : 2,2
End : 14,3
Production
E,S,S,W,N,E,N
Contribution
OOOOOOOOOOOOOOOOOOO
O~~~~~~~OOOOOOOOOOO
O~~~~...OOOOOOOOOOO
OO~O~..OOOOOOOOOOOO
O..OO.............O
O..............O..O
O....O............O
O.O............~..O
O........OOOO.....O
O.......OOOOO.....O
O.......O~~~O.....O
O.......~~~~~.....O
O.......~~~~~.....O
O..........O......O
O..O..~...........O
O...............O.O
O.....O...........O
O.................O
OOOOOOOOOOOOOOOOOOO
Start : 2,2
End : 11,11
Production
E,E,E,E,E,S,S,E,N,W,S,E,N,N,N