Miklix

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

Publié : 16 février 2025 à 20:54:13 UTC
Dernière mise à jour : 12 janvier 2026 à 09:04:56 UTC

Générateur de labyrinthes 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 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 réalité une version modifiée du Recursive Backtracker. La modification consiste à parcourir systématiquement (ou « chasser ») une nouvelle cellule à partir de laquelle poursuivre lorsqu'il est impossible d'aller plus loin, contrairement à une véritable recherche récursive qui revient toujours à la cellule précédente dans la pile.

De ce fait, cet algorithme peut être facilement adapté pour générer des labyrinthes d'apparence et de comportement variés, simplement en choisissant d'activer plus fréquemment le mode « recherche » ou selon des règles spécifiques. La version implémentée ici n'active ce mode que lorsqu'elle ne peut plus s'éloigner de 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 de chasse et d'élimination

L'algorithme Hunt and Kill est une méthode simple mais efficace pour générer des labyrinthes. Il s'apparente à une recherche en profondeur (comme l'algorithme de retour arrière récursif), à ceci près que, lorsqu'il ne peut plus progresser à partir de sa position actuelle, il parcourt systématiquement le labyrinthe pour trouver une nouvelle cellule. L'algorithme se compose de deux phases principales : la marche et la recherche.

Comment fonctionne l'algorithme de chasse et d'élimination pour la génération de labyrinthes

Étape 1 : Commencez par une cellule aléatoire

  • Trouvez une cellule au hasard dans la grille et marquez-la comme visitée.

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

  • Choisissez un voisin aléatoire que vous n'avez pas encore visité.
  • Déplacez-vous vers cette cellule voisine, marquez-la comme visitée et tracez un chemin entre la cellule précédente et la nouvelle.
  • Répétez l'opération jusqu'à ce qu'il ne reste plus aucun voisin non visité.

Étape 3 : Phase de recherche (Retour sur les lieux par balayage)

  • Scannez la grille ligne par ligne (ou colonne par colonne).
  • Trouvez la première cellule non visitée qui a au moins une voisine visitée.
  • Connectez cette cellule à une cellule voisine visitée pour reprendre la phase de marche.
  • Répétez l'opération 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

A propos de l'auteur

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