StartseiteAlgorithmen & KILabyrinth-Generator

🔲 Labyrinth-Generator & -Löser

Sieh zu, wie Labyrinthe mit 4 klassischen Algorithmen wachsen: Recursive Backtracker, Prims, Kruskals und Wilsons schleifenfreie Zufallsbewegung. Danach sofort mit BFS lösen.

Algorithmen & KI3DEinfach60 FPS
maze ↗ Eigenständig öffnen

Über den Labyrinth-Generator

Diese Simulation baut ein perfektes Labyrinth auf einem quadratischen Raster und animiert das Schnitzen in Echtzeit. Jede Zelle speichert ihre offenen Durchgänge als 4-Bit-Maske (Norden, Osten, Süden, Westen), und ein Algorithmus entscheidet, welche Wände entfernt werden. Alle vier Methoden erzeugen einen Spannbaum über dem Raster: ein Labyrinth mit genau einem Weg zwischen zwei beliebigen Zellen und ohne Schleifen. Du kannst zusehen, wie die Struktur Zelle für Zelle wächst.

Die Algorithmus-Auswahl wählt zwischen Recursive Backtracker (DFS), Prims Zufallsvariante, Kruskals Zufallsvariante und Wilsons schleifenfreier Zufallsbewegung. Der Rastergröße-Regler legt die B×H-Abmessungen fest (5 bis 60), und die Geschwindigkeit steuert, wie viele Schnitzschritte pro Bild ablaufen. Nach der Erzeugung führt Lösen eine Breitensuche durch, um den kürzesten Weg vom Start oben links zum Ausgang unten rechts nachzuzeichnen. Labyrinth-Algorithmen sind die Grundlage für Spiel-Level-Design, Roboterpfadplanung und die Lehre der Graphentheorie.

Häufig gestellte Fragen

Was ist ein Labyrinth-Generator?

Es ist ein Programm, das ein Raster aus Zellen in ein zusammenhängendes Netz aus Gängen und Wänden umwandelt. Diese Version erzeugt perfekte Labyrinthe, das heißt, es gibt genau einen Weg zwischen zwei beliebigen Punkten und keine geschlossenen Schleifen. Das Ergebnis ist mathematisch ein Spannbaum über dem Raster.

Was machen die vier Algorithmen unterschiedlich?

Der DFS-Backtracker schnitzt lange, gewundene Gänge; Prims Zufallsmethode wächst von einer Front aus und erzeugt kurze, buschige Zweige; Kruskals Algorithmus verbindet zufällige getrennte Regionen zu einer gleichmäßigen Textur; und Wilsons Algorithmus erzeugt ein unverzerrtes Labyrinth, bei dem jeder mögliche Aufbau gleich wahrscheinlich ist. Sie bauen dieselbe Art von Labyrinth mit sehr unterschiedlichem visuellem Charakter.

Wie findet der Löser den Weg?

Ein Klick auf Lösen startet eine Breitensuche von der Startzelle (oben links) nach außen, wobei der Vorgänger jeder Zelle gespeichert wird. Da BFS in Reihenfolge der Entfernung sucht, hat es beim ersten Erreichen des Ausgangs (unten rechts) den kürzesten Weg gefunden, der dann zurückverfolgt und grün gezeichnet wird.

Was steuern die Regler für Rastergröße und Geschwindigkeit?

Die Rastergröße legt sowohl Breite als auch Höhe des quadratischen Labyrinths fest, von 5×5 bis 60×60 Zellen, sodass die Gesamtzellenzahl das Quadrat dieses Werts ist. Die Geschwindigkeit ist einem Schritte-pro-Bild-Zeitplan zugeordnet (1, 1, 2, 4, 8, 15, 30, 60, 150, 500), womit du das Schnitzen auf ein Kriechen verlangsamen oder ein großes Labyrinth fast sofort fertigstellen kannst.

Was bedeutet „perfektes Labyrinth“?

Ein perfektes Labyrinth ist vollständig verbunden und enthält keine Schleifen, sodass es genau eine Route zwischen einem beliebigen Zellenpaar gibt. In der Graphentheorie ist es ein Spannbaum des Rastergraphen: Jede Zelle ist erreichbar, und das Entfernen eines Durchgangs würde das Labyrinth trennen.

Warum heißt Wilsons Algorithmus unverzerrt?

Wilsons Algorithmus verwendet schleifenfreie Zufallsbewegungen: Er läuft zufällig von einer unbesuchten Zelle, bis er auf das bestehende Labyrinth trifft, und löscht dabei entstandene Schleifen. Dieses Verfahren wählt gleichverteilt zufällig aus allen möglichen Spannbäumen, sodass jedes Labyrinth dieser Größe gleich wahrscheinlich ist. David Wilson veröffentlichte es 1996.

Wie funktioniert der Recursive Backtracker?

Er beginnt an einer Zelle, markiert sie als besucht und bewegt sich wiederholt zu einem zufälligen unbesuchten Nachbarn, wobei die Wand zwischen ihnen entfernt und die Zelle auf einen Stapel gelegt wird. Hat eine Zelle keine unbesuchten Nachbarn, geht er zurück, indem er vom Stapel nimmt. Diese Tiefensuche erzeugt die langen, schlängelnden Gänge, die für DFS-Labyrinthe typisch sind.

Wie werden die Gänge intern gespeichert?

Jede Zelle enthält eine 1-Byte-Bitmaske, deren Bits offene Durchgänge nach Norden, Osten, Süden und Westen darstellen (Werte 1, 2, 4 und 8). Das Entfernen einer Wand setzt das entsprechende Bit in beiden benachbarten Zellen. Der Renderer liest diese Bits, um verbindende Brücken zwischen Zellen zu zeichnen, und der Löser liest sie, um zu wissen, welche Züge erlaubt sind.

Ist die Simulation physikalisch oder mathematisch korrekt?

Ja. Jeder Algorithmus ist originalgetreu umgesetzt: DFS mit explizitem Stapel, Prims mit zufälliger Front, Kruskals mit gemischter Kantenliste und Union-Find-Konnektivität und Wilsons mit echten schleifenfreien Zufallsbewegungen. Der BFS-Löser ist eine Standard-Kürzeste-Wege-Suche, sodass die hervorgehobene Route für ein perfektes Labyrinth immer optimal ist.

Warum braucht Kruskals Algorithmus Union-Find?

Kruskals Algorithmus mischt alle Wände und betrachtet sie nacheinander, wobei eine Wand nur entfernt wird, wenn die beiden dadurch getrennten Zellen zu unterschiedlichen Regionen gehören. Eine Union-Find-Struktur (disjunkte Mengen) verfolgt, welche Zellen bereits verbunden sind, sodass der Algorithmus beim Zusammenführen des Rasters zu einem einzigen Baum Schleifen vermeiden kann.

Wo werden Labyrinth-Algorithmen in der Praxis eingesetzt?

Sie erscheinen bei der Erzeugung von Videospiel-Levels und Dungeons, in prozeduralen Content-Tools und als klassische Lehrbeispiele für Graphentraversierung und Spannbäume. Dieselben Ideen erstrecken sich auf Robotik und Netzwerk-Routing, wo das Finden verbundener, schleifenfreier Pfade durch einen Raum wesentlich ist.

Vier Erzeugungsalgorithmen — DFS Backtracker, Prims, Kruskals und Wilsons schleifenfreie Zufallsbewegung — live animiert. Danach sofort mit BFS lösen, um den kürzesten Weg zu finden.

🔬 Was es zeigt

Jeder Algorithmus erzeugt eine andere „Textur“ des Labyrinths. DFS erzeugt lange Gänge, Prims verzweigte Muster, Kruskals ist gleichmäßig, Wilsons ist unverzerrt.

🎮 Anwendung

Wähle einen Erzeugungsalgorithmus und sieh zu, wie das Labyrinth geschnitzt wird. Klicke dann auf Lösen, um BFS den kürzesten Weg vom Start bis zum Ziel finden zu lassen.

💡 Wusstest du schon?

Wilsons Algorithmus erzeugt einen perfekt gleichverteilten zufälligen Spannbaum — jedes mögliche Labyrinth ist gleich wahrscheinlich. Er nutzt schleifenfreie Zufallsbewegungen, entdeckt von David Wilson im Jahr 1996.

⚙ Unter der Haube

Vier Algorithmen — DFS Backtracker, Prims, Kruskals und Wilsons schleifenfreie Zufallsbewegung — live animiert. Sofort mit BFS lösen.

Canvas 2DDFSKruskalWilsonBFS

3D · Three.js / WebGL-Renderer · Ziel 60 FPS · läuft vollständig clientseitig, keine Installation nötig

Was hast du gefunden?

Schritte zur Reproduktion hinzufügen (optional)