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

    1. Prendre une première case (par exemple, 0,0) comme étant la case courante et marquée là comme visitée
    2. While qu'il reste des cases non visitées
      1. If la case courante a des voisins non visitées
        1. Choisir aléatoirement un des voisins non visitées
        2. Push la case courante sur une pile (stack)
        3. Creuse le mur entre la case courante et la case voisine choisie
        4. Fais de la case voisine choisie la nouvelle case courante et marque là comme visitée
      2. Else if la pile n'est pas vide
        1. Pop une case de la pile
        2. Faites-en la case courante

    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)  
    • Method Summary

      Modifier and Type Method Description
      void generate()
      Méthode de génération du Maze qui devra être implémenté.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RecursiveMaze

        public RecursiveMaze​(int nRow,
                             int nCol)
    • Method Detail

      • generate

        public void generate()
        Description copied from class: Maze
        Méthode de génération du Maze qui devra être implémenté.
        Specified by:
        generate in class Maze