Maze-Generator-Bibliothek

Zufällig generierte Spielwelten sind derzeit sehr beliebt. Kann jemand eine Open-Source-Java-Bibliothek für die Erstellung von kachelbasierten Labyrinthen (Vogelperspektive) empfehlen?

Funktionen, die ich im Auge habe:

Basic

  • zwei Ausgänge, die immer verbunden sind
  • einstellbares x/y-Maß
  • Ausgabe: zweidimensionales Array
  • Fahrräder

Fortschrittlich

  • Räume
  • breite Korridore
  • Freiraum
  • mehrere Ausgänge
  • zusätzliche Ausgabe: Lösungsweg

Profi

  • Felder teleportieren
  • ein Schlüssel-/Türkonzept
  • mehrschichtiges ausgebreitetes Labyrinth

Update: Das Buch Labyrinthe für Programmierer hat mir geholfen. Der Code ist in Ruby.

Dies ist nicht wirklich eine Bibliothek, aber die Informationen, die auf dieser Seite angezeigt werden, sollten Ihnen bei der Erstellung Ihrer Karten helfen. en.wikipedia.org/wiki/Maze_generation_algorithm
Einige weitere Links, die von Interesse sein könnten: Wilson's Algorithm und Rooms and Mazes: A Procedural Dungeon Generator . Besonders letzteres finde ich sehr lesenswert.
Ich habe eine Labyrinth-Frage auf PCG gestellt und sie hat eine nette JavaScript-Lösung (bezüglich des Ergebnisses kann ich die Quelle nicht beurteilen).
Ich weiß, dass dieser Beitrag relativ alt ist, aber Sie sollten sich vielleicht astrolog.org/labyrnth/daedalus.htm ansehen - Ich habe Daedalus mehrmals für die Erstellung von Labyrinthen verwendet und hatte nie Probleme damit. Es könnte jedoch mehr Arbeit sein, als Sie hineinstecken möchten, um es in Ihrem Projekt zum Laufen zu bringen.

Antworten (1)

Ich arbeite derzeit an einer in Java 7+ geschriebenen Labyrinth-Generierungsbibliothek und wäre bereit, ihre Verwendung zu diskutieren.

Ich habe hier auch ein Beispiel für einen einfachen Labyrinthgenerierungsalgorithmus gefunden , der Ihnen helfen sollte, Ihren eigenen Labyrinthgenerator zu schreiben, wenn Sie nichts finden, das Ihren Zwecken entspricht.

Und ist die Labyrinth-Generierungsbibliothek jetzt verfügbar?
Der Algorithmus ist nicht annähernd dort, wo ich ihn haben möchte, er generiert hauptsächlich nur ein Labyrinth in einer bestimmten Größe, ist aber keine "perfekte" Labyrinthgenerierung. Ich habe gerade meine E-Mail zu meinem Profil hinzugefügt. Ich würde mich freuen, mit allen, die mehr wissen möchten, ausführlicher darüber zu diskutieren.
Erstellen Sie ein Raster. Behandeln Sie es wie einen Graphen; Jeder Nachbar ist mit 4 anderen Nachbarn verbunden, außer an den Kanten und Ecken. Wählen Sie eine zufällige Zelle aus, erstellen Sie einen Spanning Tree mit dieser Zelle als Ausgangspunkt; Wählen Sie beim Erweitern des Spannbaums zufällige Kanten. Platzieren Sie Wände an jeder Graphenkante, die nicht vom aufspannenden Baum verwendet wird. Fertig.