Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Einheit 5: Weg auf schwarzen Pixeln erweitern ====== <WRAP info> 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): <code txt> +---+---+---+---+---+---+ + | | | | | | d # | +---+---+---+---+---+ +---+ | | | a b | | c | | +---+---+ + +---+ +---+ </code> * Die Wand zwischen a,b wird dann gesetzt, und der Weg über die zwei benachbarten Zellen x, y umgeleitet: <code txt> +---+---+---+---+---+---+ + | | | x y | | d # | +---+---+ + +---+ +---+ | | | a | b | | c | | +---+---+ + +---+ +---+ </code> * 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. </WRAP> * 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: <code python> from wegerweiterung import wegerweiterung </code> * Rufen Sie die Funktion am Ende in der Datei ''main.py'' wie folgt auf: <code python> wegerweiterung(weg) </code> * 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:11by Ivo Blöchliger