====== 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 {{lehrkraefte:blc:informatik:glf24:laby: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''.