Le but est de creer un labyrinthe en utilisant des éléments vus en cours de terminale comme les piles, File, Graphe etc...
Une fois crée le but est de trouver le chemin le plus court pour sortir du labyrinthe.
Tout ça affichait dans une fenêtre Tkinter.
- Afficher une page vierge.
- Faire un cadre où se trouve le labyrinthe.
- Afficher les murs.
- Afficher l'entrée/sortie.
- Afficher le plus court chemin
- Afficher la distance du plus court chemin
- Afficher les autres chemins possibles avec leurs distances [Bonus].
- Faire qu'on puisse générer avec un bouton [Bonus]
- Faire qu'on puisse le résoudre depuis l'app avec des boutons [Bonus]
- Pouvoir gérer la grandeur du labyrinthe à générer sans devoir modifier le code [Bonus]
- Créer des murs sur toutes les cases du tableau de 25x25.
- Définir une entrée et une sortie.
- Casser certains murs de façons aléatoires.
- Faire qu'il n'y est pas de chemins inutiles
- Faire qu'il n'y est pas de murs inutiles
- Toujours un chemin entre l'entrée et la sortie
- Faire plusieurs sorties possibles [Bonus].
- Avoir le temps de création du labyrinthe [Bonus].
- Créer des labyrinthe suivant une seed
- Afficher la seed
- Dire le plus court chemin avec les noms ou valeurs des points traversé.
- Afficher le plus court chemin
- Avoir en combien de temps la sortie a était trouvé [Bonus].
Les murs peuvent être définis de la manière suivante :
- Par des listes
lab=[0,1,1,0,0,1,1,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,1],[etc...]
.
où les "1" correspondent à un mur (représenté par du rouge),"0" à un chemin,"2" l'entrée et "3" la sortie.
Le labyrinthe va être résolu à l'aide d'une recherche du plus court chemin, en numérotant à partir du points de départ la distance entre chaque case représentant un chemin, depuis la case de départ.
.
Puis partir du point d'arrivée et suivre les nombres inférieurs à la distance où on se trouve jusqu'à arriver à 0 et l'afficher.
.
(en vert un chemin choisi arbitrairement pour représenter le plus court chemin et en jaune les autres parties de chemins possibles)