Exercices de programmation pour classes préparatoires
Un labyrinthe est represente par une liste de listes laby de taille n x m, ou :
- 0 represente une case libre,
- 1 represente un mur.
On part de la case (0, 0) (coin superieur gauche) et on cherche a atteindre la case (n-1, m-1) (coin inferieur droit). A chaque etape, on peut se deplacer sur une case libre voisine dans les quatre directions (haut, bas, gauche, droite).
Ecrire une fonction existe_chemin(laby) qui renvoie True s'il existe un chemin entre (0, 0) et (n-1, m-1), False sinon.
Si la case de depart ou d'arrivee est un mur, la fonction renvoie False.
Cet exercice se resout par un parcours de graphe (en largeur ou en profondeur) : les sommets sont les cases libres et deux cases sont reliees si elles sont adjacentes (haut/bas/gauche/droite).
| Appel | Résultat attendu |
|---|---|
| existe_chemin([[0, 0], [0, 0]]) | True |
| existe_chemin([[0, 1], [1, 0]]) | False |
Connectez-vous pour soumettre du code.