Miklix

Générateur de labyrinthe d’algorithme de Wilson

Publié : 16 février 2025 à 19 h 42 min 33 s UTC

Générateur de labyrinthe utilisant l’algorithme de Wilson pour créer un labyrinthe parfait. Cet algorithme génère tous les labyrinthes possibles d’une taille donnée avec la même probabilité, de sorte qu’il peut en théorie générer des labyrinthes de nombreuses dispositions mixtes, mais comme il y a plus de labyrinthes possibles avec des couloirs plus courts que plus longtemps, vous les verrez plus souvent.

Cette page a été automatiquement traduite de l'anglais afin de la rendre accessible au plus grand nombre. Malheureusement, la traduction automatique n'est pas encore une technologie au point, des erreurs peuvent donc survenir. Si vous préférez, vous pouvez consulter la version originale en anglais ici :

Wilson's Algorithm Maze Generator

L’algorithme de Wilson est une méthode de marche aléatoire effacée en boucle qui génère des arbres couvrants uniformes pour la création de labyrinthes. Cela signifie que tous les labyrinthes possibles d’une taille donnée sont également susceptibles d’être générés, ce qui en fait une technique de génération de labyrinthe impartiale. L’algorithme de Wilson peut être considéré comme une version améliorée de l’algorithme d’Aldous-Broder, car il génère des labyrinthes avec des caractéristiques identiques, mais il fonctionne beaucoup plus rapidement, donc je n’ai pas pris la peine de mettre en œuvre l’algorithme d’Aldous-Broder ici.

Un labyrinthe parfait est un labyrinthe dans lequel il existe exactement un chemin reliant n’importe quel point du labyrinthe à n’importe quel autre point. Cela signifie que vous ne pouvez pas finir par tourner en rond, mais vous rencontrerez souvent des culs-de-sac, ce qui vous obligera à faire demi-tour et à revenir en arrière.

Les cartes de labyrinthe générées ici incluent une version par défaut sans aucune position de départ et d'arrivée, vous pouvez donc les décider vous-même : il y aura une solution de n'importe quel point du labyrinthe à n'importe quel autre point. Si vous voulez trouver de l'inspiration, vous pouvez activer une position de départ et d'arrivée suggérée - et même voir la solution entre les deux.


Générer un nouveau labyrinthe








À propos de l’algorithme de Wilson

L’algorithme de Wilson pour générer des arbres couvrants uniformes à l’aide d’un mur aléatoire effacé en boucle a été créé par David Bruce Wilson.

Wilson a initialement introduit cet algorithme en 1996 alors qu’il recherchait des arbres couvrants aléatoires et des chaînes de Markov en théorie des probabilités. Bien que son travail ait été principalement en mathématiques et en physique statistique, l’algorithme a depuis été largement adopté pour la génération de labyrinthes en raison de sa capacité à produire des labyrinthes parfaitement uniformes.

Comment fonctionne l’algorithme de Wilson pour la génération de labyrinthes

L’algorithme de Wilson garantit que le labyrinthe final est entièrement connecté sans aucune boucle en sculptant de manière itérative des chemins à partir de cellules nonvisites à l’aide de promenades aléatoires.

Étape 1 : Initialiser

  • Commencez par une grille remplie de murs.
  • Définissez une liste de toutes les cellules de passage possibles.

Étape 2 : Choisissez une cellule de démarrage aléatoire

  • Choisissez n’importe quelle cellule aléatoire et marquez-la comme visitée. Cela sert de point de départ du labyrinthe pendant la génération.

Étape 3 : Marche aléatoire avec effacement de boucle

  • Choisissez une cellule nonvisée et commencez une marche aléatoire (se déplaçant dans des directions aléatoires).
  • Si la promenade atteint une cellule déjà visitée, effacez toutes les boucles dans le chemin.
  • Une fois que la promenade se connecte à la région visitée, marquez toutes les cellules du chemin comme visitées.

Étape 4 : Répétez jusqu’à ce que toutes les cellules soient visitées :

  • Continuez à sélectionner des cellules nonvissées et à effectuer des promenades aléatoires jusqu’à ce que chaque cellule fasse partie du labyrinthe.
Partager sur BlueskyPartager sur FacebookPartager sur LinkedInPartager sur TumblrPartager sur XPartager sur LinkedInÉpingler sur Pinterest

Mikkel Bang Christensen

À propos de l'auteur

Mikkel Bang Christensen
Mikkel est le créateur et propriétaire de miklix.com. Il a plus de 20 ans d'expérience en tant que programmeur informatique/développeur de logiciels professionnel et est actuellement employé à temps plein pour une grande société informatique européenne. Lorsqu'il ne blogue pas, il consacre son temps libre à une vaste gamme d'intérêts, de passe-temps et d'activités, qui peuvent dans une certaine mesure se refléter dans la variété des sujets abordés sur ce site Web.