Vous trouverez énormément de site internet bien documentés qui parlent de cet algorithme.
Algorithme du BackTraking
(Postulat) On part d'un labyrinthe constitué de cellules ou toutes les portes sont fermées.
Chaque cellule contient une variable « Etat » qui indique si la cellule est rattachée au labyrinthe
ou non. Toutes les variables sont à non (0).
(Etape 0) On choisi une premiere cellule au hasard et on met son état à COURANTE (1).
Tant que labyrinthe !fini
(Etape 1) Puis on regarde quels sont les cellules voisines disponibles et dont l'état est à 0 et on
stocke la position de la cellule en cours dans la liste de 'backtracking'.
(Etape 2) S'il y a au mois une possibilité, on la sèlectionne, dans le cas de plusieurs possibilités on
en choisi une au hasard, on ouvre le mur et on met son "Etat" à 1 (courante) et l'etat de la précedente
à 2 (visite) et on recommence avec la nouvelle cellule courante(go to 1).
(Etape 3) S'il n'y en a pas, on revient à la case précédente (liste de backtracking) et on recommence
en 1 si la cellule est éligible ou en 3 sinon.
(Arret) Quand on est revenu à la case départ et qu'il n'y a plus de possibilités (toutes les cases sont à
>0), le labyrinthe est terminé (fini=vrai).
Fin tant que
Travail demandé :
(Proposition 1) Réalisez sous Java avec les Api JavaFX une application graphique qui permet de
générer des labyrinthes avec cet algorithme et de permettre à un personnage (sprite) de circuler et
sortir de ce labyrinthe avec le temps le plus court possible, ce qui donnera un certain nombre de
points.
On s'assurera que l'on a bien marqué la sortie du labyrinthe, et on placera le personnage à l'entrée du
labyrinthe.
Régles simples du jeu :
- A chaque niveau on augmentera la taille du labyrinthe, pour augmenter la difficulté.
- A chaque niveau un objectif de point est à atteindre, s'il ne l'est pas le jeu s'arrete.
- Un abandon marque la fin du jeu.
A la fin du jeu, on inscrit les score des joueurs sur un tableau de score à l'écran (score + niveau +
meilleur temps) là aussi vous serez force de propositions.
(Proposition 2) Réalisez une application avec les Api JavaFX une application graphique qui permet
de générer des labyrinthes avec cet algorithme et d'écrire un algorithme basé également sur la
notion de "BackTracking" et de retrouver un chemin de sortie entre le point de départ et d'arrivée et
de tracer celui ci.
2/3