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)]

Deviens membre Premium magic_button

Accède à la solution de cet exercice en devenant Membre Premium 🚀

Premium

  • check +100h de formations
  • check +180 exercices de code
  • check +100h de mentorats en rediffusion
  • check 20 projets
  • check Mentorats groupés hebdomadaires
  • check Support individuel avec nos mentors
Découvrir les formules
Voir le détail des fonctionnalités
# Le code de départ accessible pour les membres Premium
Un instant...
terminal

Résultats

Deviens membre Premium magic_button

Accède aux tests unitaires pour vérifier ton code en devenant Membre Premium 🚀

Premium

  • check +100h de formations
  • check +180 exercices de code
  • check +100h de mentorats en rediffusion
  • check 20 projets
  • check Mentorats groupés hebdomadaires
  • check Support individuel avec nos mentors
Découvrir les formules
Voir le détail des fonctionnalités

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

💎

Envoyer 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 :

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.