Table of Contents

Labyrinthe

Mögliche Prüfungsfragen

Der Begriff «Labyrinth» bezieht sich im folgenden immer auf rechteckiges Raster aus quadratischen Zellen, die mit einem beliebigen Symbol markiert sein können und von denen es bis zu vier Nachbarn (rechts, unten, links, oben) geben kann, wobei dazwischen jeweils eine Mauer vorhanden ist, oder eben nicht.

Wegfindung mit Todo-Liste

Gegeben ist folgener Pseudo-Code

Gegeben: ein Labyrinth und eine Startzelle. Alle Zellen unmarkiert.
 
Markiere Startzelle mit 'S'
Neue Todo-Liste mit Startzelle als einzigen Eintrag.
So lange Todo-Liste nicht leer:
    Entferne die letzte Zelle aus der Todo-Liste, nenne diese «aktuell».
    Wenn es eine unmarkierte Nachbarszelle gibt, keine Mauer dazwischen:
        Markiere Nachbarszelle mit '.'
        Füge die «aktuelle» Zelle der Todo-Liste hinzu
        Füge die Nachbarszelle der Todo-Liste hinzu

Generierung eines Labyrinths

Gegeben ist folgener Pseudo-Code

Gegeben: Breite und Höhe des zu generierenden Labyrinths
 
Erzeuge ein neues Labyrinth mit gegebener Grösse, alle Mauern geschlossen, alle Zellen unmarkiert.
Sei die Startzelle die Zelle oben links.
Markiere Startzelle mit 'S'
Neue Todo-Liste mit Startzelle als einzigen Eintrag.
So lange Todo-Liste nicht leer:
    Entferne die letzte Zelle aus der Todo-Liste, nenne diese «aktuell».
    Wenn es eine unmarkierte Nachbarszelle mit einer Mauer dazwischen gibt, wähle diese zufällig aus allen möglichen aus:
        Entferne die Mauer zwischen «aktuell» und der Nachbarszelle
        Markiere Nachbarszelle mit '.'
        Füge die «aktuelle» Zelle der Todo-Liste hinzu
        Füge die Nachbarszelle der Todo-Liste hinzu