Sortir d'un labyrinthe - Docstring

Dans cet exercice, vous devez créer une fonction nommé sortir_labyrinthe prenant en paramètre un labyrinthe qui sera représenté par des listes imbriquées. La fonction devra renvoyer une liste contenant toutes les positions qui constituent le chemin vers la sortie.

La position de départ est représenté le chiffre 2 dans le labyrinthe et le chiffre 3 pour la sortie. De plus, tous les murs sont identifiés par le nombre 1 et 0 les positions ne contenant aucun obstacle.

Par position on entend un tuple contenant en premier élément l’index des ordonnées et en second élément l’index des abscisses afin de faciliter le repérage dans les listes imbriquées. La position (0, 0) sera donc la position tout en haut à gauche du labyrinthe.

Aide : le visualiseur

Pour vous aider nous avons créé un visualiseur web qui permet d'afficher visuellement le chemin renvoyé par la fonction sortir_labyrinthe. Il vous suffit simplement de sélectionner un niveau, d'insérer votre code sur l'éditeur à droite puis de cliquer sur le bouton exécuter.

Cliquez sur le lien suivant pour accéder au visualiseur : https://maze-visualize-docstring.tomydev.repl.co/

Exemples

labyrinthe = [
    [1, 1, 1, 1, 0, 1, 0, 1, 3, 1],
    [1, 2, 0, 1, 0, 0, 0, 0, 0, 1],
    [1, 1, 0, 1, 0, 1, 1, 1, 1, 1],
    [0, 1, 0, 1, 0, 0, 0, 0, 0, 1],
    [0, 1, 0, 1, 0, 0, 1, 1, 1, 1],
    [1, 1, 0, 1, 1, 0, 1, 0, 0, 0],
    [1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
    [1, 1, 0, 1, 1, 1, 1, 0, 0, 0],
    [0, 1, 1, 1, 0, 0, 0, 0, 0, 0],
]
>>> sortir_labyrinthe(labyrinthe)
[(1, 1), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (6, 3), (6, 4), (6, 5), (5, 5), (4, 5), (4, 4), (3, 4), (2, 4), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (0, 8)]
labyrinthe = [
    [0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
    [1, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 3],
    [0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1],
    [0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0],
    [1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
    [1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0],
    [0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0],
    [0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
]
>>> sortir_labyrinthe(labyrinthe)
[(2, 1), (2, 2), (2, 3), (2, 4), (3, 4), (4, 4), (5, 4), (6, 4), (7, 4), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9), (7, 10), (6, 10), (5, 10), (4, 10), (3, 10), (3, 11), (3, 12), (3, 13), (3, 14)]
def sortir_labyrinthe(labyrinthe: list) -> list:
    # Votre code ici 👇
Un instant...

Test avec le labyrinthe numéro 1

Le chemin doit permettre de trouver la sortie.

Test avec le labyrinthe numéro 2

Le chemin doit permettre de trouver la sortie.

Test avec le labyrinthe numéro 3

Le chemin doit permettre de trouver la sortie.

Test avec le labyrinthe numéro 4

Le chemin doit permettre de trouver la sortie.

Bravo, tu as réussi cet exercice de code 🥳

Succès

Soumettre ma solution

Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇

Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.

Ma solution :

Mes notes

Sauvegardé

Passages surlignés

Besoin d'aide ?

Essaie d'être le plus exhaustif possible en donnant suffisamment de détails pour qu'on puisse te répondre du premier coup 😉

Tu souhaites nous remonter un bug ? Utilise-plutôt ce formulaire.

Cette fonctionnalité est réservée aux membres de la formule accompagnement de Docstring.

Aucun résultat.

Un problème sur le site ?

Aide-nous à améliorer Docstring en nous signalant un problème que tu as rencontré.

Que ce soit un bug sur une fonctionnalité ou une erreur dans une formation, on va pouvoir le corriger rapidement 😉

Page concernée

M'avertir par e-mail

Je veux être averti par e-mail lorsque ce bug est corrigé.