Package org.hololink.labyrinth.generate
Class RecursiveMaze
- java.lang.Object
-
- org.hololink.labyrinth.generate.Maze
-
- org.hololink.labyrinth.generate.RecursiveMaze
-
public class RecursiveMaze extends Maze
Génère un labyrinthe avec un algorithme de backtracking. Cet algorithme utilise un principe de priorité de profondeur (depth-first) pour passé à travers toutes les cases et creusé vers une case non visitée.Voici un algorithme tiré de Wikipedia:
- Prendre une première case (par exemple, 0,0) comme étant la case courante et marquée là comme visitée
- While qu'il reste des cases non visitées
- If la case courante a des voisins non visitées
- Choisir aléatoirement un des voisins non visitées
- Push la case courante sur une pile (stack)
- Creuse le mur entre la case courante et la case voisine choisie
- Fais de la case voisine choisie la nouvelle case courante et marque là comme visitée
- Else if la pile n'est pas vide
- Pop une case de la pile
- Faites-en la case courante
- If la case courante a des voisins non visitées
Une autre stratégie qui utilise la récursion est étudiée ici. La méthode d'implémentation à utilisée est à votre choix.
-
-
Constructor Summary
Constructors Constructor Description RecursiveMaze(int nRow, int nCol)
-