Einheit 6: Weg auf restliche Zellen als Labyrinth ausbauen

Idee: Wir fügen alle Zellen des Weges in die todo-Liste ein und machen dann eine Wegfindung.

  • Speichern Sie die Datei wegkomplettieren.py im Verzeichnis labyrinth.
  • In der Datei main.py, importieren Sie die Funktion und rufen Sie diese am Schluss von main.py mit korrekten Parametern auf.
  • Geben Sie das Labyrinth aus und testen Sie das Programm main.py.
  • Was stellen Sie fest? erhält man ein gewünschtes Labyrinth? Warum nicht?

Das Problem ist, dass sämtlicher erreichbarer Platz von einer Weg-Zelle aus gefüllt wird, d.h. der korrekte Weg ist ein langer Schlauch mit nur so vielen Abzweigungen, wie es zusammenhängende weisse Flächen hat.

Wir können mehr Verzweigungen einbauen, wenn man hin und wieder die todo-Liste verwürfelt:

  • In der Datei wegkomplettieren.py, importieren Sie zusätzlich die randrange-Funktion von der random Bibliothek. (Mehrere Funktionen sind durch Kommas zu trennen).
  • Unmittelbar am Anfang der while-Schleife soll die todo-Liste verwürfelt werden, falls eine Zufallszahl von 0 bis und mit 14 genau 0 ist:
        if randrange(15)==0:
            shuffle(todo)
  • Speichern und die Datei main.py nochmals testen.

Damit noch mehr Abzweigungen in den Weg eingebaut werden, können die Weg-Zellen nach hinten sortiert werden, indem die todo-Liste nach dem verwürfeln nach der Markierung sortiert wird:

            todo.sort(key=lambda x:x.mark, reverse=True)
  • lehrkraefte/blc/informatik/glf24/laby/labyrinthkomplettieren.txt
  • Last modified: 2025/05/15 15:55
  • by Ivo Blöchliger