Miklix

Générateur de labyrinthe avec l'algorithme de Wilson

Publié : 16 février 2025 à 19:31:52 UTC

Générateur de labyrinthes 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é, il peut donc en théorie générer des labyrinthes de plusieurs configurations mixtes, mais comme il y a plus de labyrinthes possibles avec des couloirs plus courts que plus longs, vous les verrez plus souvent.

Cette page a été traduite de l'anglais afin de la rendre accessible au plus grand nombre. Malheureusement, la traduction automatique n'est pas encore une technologie parfaite, et des erreurs peuvent donc se produire. 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 à boucle effacée 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 ont la même probabilité d'être générés, ce qui en fait une technique de génération de labyrinthes 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 s'exécute beaucoup plus rapidement, je n'ai donc pas pris la peine d'implémenter l'algorithme d'Aldous-Broder ici.

Un labyrinthe parfait est un labyrinthe dans lequel il existe exactement un seul chemin entre n'importe quel point du labyrinthe et n'importe quel autre point. Cela signifie que vous ne pouvez pas tourner en rond, mais que vous rencontrerez souvent des impasses qui vous obligeront à faire demi-tour.

Les cartes de labyrinthe générées ici comprennent une version par défaut sans position de départ et d'arrivée, afin que vous puissiez décider vous-même de ces positions : il y aura une solution de n'importe quel point du labyrinthe à n'importe quel autre point. Si vous souhaitez vous inspirer, vous pouvez activer une suggestion de position de départ et d'arrivé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 à boucle effacée a été créé par David Bruce Wilson.

Wilson a initialement introduit cet algorithme en 1996 alors qu'il effectuait des recherches sur les arbres de recouvrement aléatoires et les chaînes de Markov en théorie des probabilités. Bien que ses travaux aient principalement porté sur les mathématiques et la 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 créant de manière itérative des chemins à partir de cellules non visitées à l'aide de promenades aléatoires.

Étape 1 : Initialiser

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

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

  • Choisissez une cellule au hasard et marquez-la comme visitée. Cela sert de point de départ au labyrinthe pendant la génération.

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

  • Choisissez une cellule non visitée et commencez une marche aléatoire (en vous déplaçant dans des directions aléatoires).
  • Si le parcours atteint une cellule déjà visitée, effacez toutes les boucles du chemin.
  • Une fois que le chemin 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 les cellules non visité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

A propos de l'auteur

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