Quel algorithme avez-vous utilisé par le passé pour générer un labyrinthe 2D simple?
algorithm
procedural-generation
jdeseno
la source
la source
Je préfère les labyrinthes étroitement enroulés que l'algorithme de Kruskal crée.
La description standard de l'algorithme de Kruskal est inappropriée en ce qu'elle ne parvient pas à distinguer les emplacements dans le graphique des groupes d'emplacement, tout en s'appuyant sur un jeu de mots sur le choix de la structure de données, conduisant à des ambiguïtés de description qui déroutent les novices. Par conséquent, je rejette la terminologie de Kruskal.
J'utiliserai les termes suivants:
Et de ceux-ci, nous obtenons:
la source
Wikipedia a une grande ressource sur la génération de labyrinthe . J'ai utilisé un algorithme de prims randomisés avec d'excellents résultats. L'algorithme de division semble intéressant mais je ne l'ai jamais utilisé.
Voici un exemple wikipedia de prim au travail.
la source
Un moyen simple consiste à dresser une liste des murs nord et ouest, puis à les permuter. Donnez un numéro à chaque pièce. Faites exploser l'un des murs de la liste, tant que les deux pièces n'ont pas le même numéro, puis propagez l'un des numéros à toutes les autres pièces portant le même numéro. Continuez jusqu'à ce que vous manquiez de murs. Cela fonctionne pour les labyrinthes rectangulaires ou, vraiment, tout autre labyrinthe où vous pouvez donner une liste de "pièces potentiellement connectées". De plus, c'est assez simple à programmer.
la source
Je voudrais également jeter un oeil à certains des algorithmes utilisés dans le développement Roguelike. Il y a une bonne ressource de départ au bassin Rogue
la source
Il y a une bonne course ici: https://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/
Les étapes de base étaient les suivantes:
Code ici: https://github.com/munificent/hauberk/blob/db360d9efa714efb6d937c31953ef849c7394a39/lib/src/content/dungeon.dart
la source
Vous avez demandé lequel j'ai utilisé, donc je vais m'assurer de répondre à cela. J'ai utilisé l' algorithme Recursive Backtracker dans mon jeu de labyrinthe sur Rootbeer Games .
C'est la preuve que j'ai utilisé l'algorithme, veuillez ne pas le voir comme une publicité de mon travail.
la source