Miklix

Chasser et tuer générateur de labyrinthe

Publié : 16 février 2025 à 21 h 06 min 20 s UTC
Dernière mise à jour : 12 janvier 2026 à 09 h 05 min 28 s UTC

Un 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 corridors un peu moins longs et sinueux.

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 :

Hunt and Kill Maze Generator

L’algorithme Hunt and Kill est en réalité une version modifiée du Recursive Backtracker. La modification consiste à balayer systématiquement (ou « chasser ») une nouvelle cellule à partir de laquelle elle ne peut pas aller plus loin, contrairement à une véritable recherche récursive, qui reviendra toujours à la cellule précédente de la pile.

Grâce à cela, 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 plus souvent en mode « chasse » ou selon des règles spécifiques. La version implémentée ici n’entre en mode « chasse » que lorsqu’elle ne peut pas s’éloigner de la cellule actuelle.

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 chasse et de mise à mort

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

Comment fonctionne l’algorithme de chasse et de tuerie pour la génération de labyrinthes

Étape 1 : Commencez à une cellule aléatoire

  • Trouve une cellule aléatoire dans la grille et marque-la comme visitée.

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

  • Choisissez un voisin non visité au hasard.
  • 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étez jusqu’à ce qu’il ne reste plus aucun voisin non visité.

Étape 3 : Phase de chasse (revenir en arrière via scanning)

  • Scannez 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 jusqu’à ce que toutes les cellules aient été visitées.

Lectures complémentaires

Si vous avez apprécié cet article, vous aimerez peut-être aussi ces suggestions :


Partager sur BlueskyPartager sur FacebookPartager sur LinkedInPartager sur TumblrPartager sur XPartager sur LinkedInÉpingler sur Pinterest

Mikkel Christensen

À propos de l'auteur

Mikkel 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.