lehrkraefte:blc:informatik:glf24:laby:wegerweitern

Einheit 5: Weg auf schwarzen Pixeln erweitern

Die Grundidee ist folgende:

  • Man sucht zwei aufeinanderfolgende Zellen im Weg, so dass die beiden Zellen daneben schwarz, aber nicht auf dem Weg sind (z.B. Zellen a und b, oder c und d im folgendend Bild):
+---+---+---+---+---+---+   +
|   |   |   |   |   | d   # |
+---+---+---+---+---+   +---+
|   |   | a   b |   | c |   |
+---+---+   +   +---+   +---+
  • Die Wand zwischen a,b wird dann gesetzt, und der Weg über die zwei benachbarten Zellen x, y umgeleitet:
+---+---+---+---+---+---+   +
|   |   | x   y |   | d   # |
+---+---+   +   +---+   +---+
|   |   | a | b |   | c |   |
+---+---+   +   +---+   +---+
  • Das wiederholt man so lange, wie das möglich ist. Die Zellen werden zufällig ausgewählt, damit keine «geraden Korridore» entstehen.
  • Damit man nicht alle 4 Fälle programmieren muss, wird mit Operationen auf der Richtung (wie ein Winkel) gearbeitet.
    • ist dir die Richtung, sind (dir+1)%4 und (dir+3)%4 die dazu rechtwinkligen Richtungen.
    • Die Klasse Zelle hat eine Methode dirTo(other), die die Richtung zu einer anderen Zelle berechnet.
  • Speichern Sie die Datei wegerweiterung.py im Verzeichnis labyrinth.
  • Studieren Sie den Code der Datei wegerweiterung.py
  • In der Datei main.py, importieren Sie die Funktion wie folgt:
from wegerweiterung import wegerweiterung
  • Rufen Sie die Funktion am Ende in der Datei main.py wie folgt auf:
wegerweiterung(weg)
  • Zeigen das Labyrinth am Schluss wieder an.
  • Testen Sie das Programm main.py.
  • lehrkraefte/blc/informatik/glf24/laby/wegerweitern.txt
  • Last modified: 2025/05/15 15:11
  • by Ivo Blöchliger