Miklix

Générateur de labyrinthe de chasse et de meurtre

Publié : 16 février 2025 à 20:54:13 UTC

Générateur de labyrinthe utilisant l'algorithme Hunt and Kill pour créer un labyrinthe parfait. Cet algorithme est similaire au Recursive Backtracker, mais tend à générer des labyrinthes avec des couloirs un peu moins longs et sinueux.

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 :

Hunt and Kill Maze Generator

L'algorithme Hunt and Kill est en fait une version modifiée du Recursive Backtracker. La modification consiste à rechercher systématiquement (ou "chasser") une nouvelle cellule à partir de laquelle continuer lorsqu'il n'est plus possible d'aller plus loin, par opposition à une véritable recherche récursive, qui reviendra toujours à la cellule précédente sur la pile.

Pour cette raison, cet algorithme peut facilement être adapté pour générer des labyrinthes avec un aspect et une sensation différents, simplement en choisissant d'entrer en mode "chasse" plus souvent ou selon des règles spécifiques. La version mise en œuvre ici n'entre en mode "chasse" que lorsqu'elle ne peut pas aller plus loin que la cellule actuelle.

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 Hunt and Kill

L'algorithme Hunt and Kill est une méthode simple mais efficace pour générer des labyrinthes. Il est quelque peu similaire à une recherche en profondeur (c'est-à-dire l'algorithme Recursive Backtracker), sauf que lorsqu'il ne peut pas aller plus loin à partir de la position actuelle, il parcourt (ou "chasse") systématiquement le labyrinthe pour trouver une nouvelle cellule à partir de laquelle continuer. L'algorithme se compose de deux phases principales : la marche et la chasse.

Fonctionnement de l'algorithme "Hunt and Kill" pour la génération de labyrinthes

Étape 1 : Commencer par une cellule aléatoire

  • Trouver une cellule aléatoire dans la grille et la marquer comme visitée.

Étape 2 : Phase de marche (marche aléatoire)

  • Choisir un voisin aléatoire non visité.
  • Déplacez-vous vers ce voisin, marquez-le comme visité et tracez un chemin entre la cellule précédente et la nouvelle.
  • Répéter l'opération jusqu'à ce qu'il n'y ait plus de voisins non visités.

Étape 3 : Phase de chasse (retour en arrière par balayage)

  • Balayez la grille ligne par ligne (ou colonne par colonne).
  • Trouvez la première cellule non visitée qui a au moins un voisin visité.
  • Connectez cette cellule à un voisin visité pour reprendre la phase de marche.
  • Répétez l'opération jusqu'à ce que toutes les cellules aient été visitées.

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.