Défi
Énoncé
Le programme lit une grille ASCII représentant un labyrinthe : # est un mur, . est un couloir libre, S est la case de départ, E est la sortie. Les déplacements autorisés sont haut, bas, gauche, droite (pas de diagonale). Le programme affiche la longueur du plus court chemin (en nombre de cases, départ et arrivée inclus). Si aucun chemin n'existe, il affiche -1.
Contraintes
- La grille fait au plus 100 × 100 cases.
- Il y a exactement un
Set unEdans la grille. - Les bords de la grille sont toujours des murs.
- Solution réalisable dans tout langage généraliste avec sa seule bibliothèque standard (file/queue pour le BFS).
Exemple
Entrée :
#######
#S....#
#.###.#
#.#E..#
#.....#
#######
Sortie :
7
Chemin : S(1,1)→(2,1)→(3,1)→(4,1)→(4,2)→(4,3)→(3,3)=E, soit 7 cases.
Entrée :
#####
#S###
###E#
#####
Sortie :
-1