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 3: Einfachere Wegfindungsalgorithmen ====== Wir arbeiten weiterhin im Verzeichnis ''labyrinth'', wo auch die Dateien ''laby.py'' und ''zelle.py'' zu finden sind. ===== Aufgabe 3 ===== * Speichern Sie folgendes Programm als ''aufgabe3.py'' im Verzeichnis ''labyrinth'': <code python aufgabe3.py> from laby import Laby l = Laby(4,4) # Aktuelle Zelle, bzw. Start-Zelle aktuell = l[0,0] # Zelle mit S markieren aktuell.mark = "S" print(l) while True: # Endlosschleife fertig = True for dir in range(4): # Alle Richtungen probieren nb = aktuell.nachbar(dir) # Nachbar in diese Richtung (oder None, wenn es diesen nicht gibt) if nb!=None and nb.mark==" ": # Noch keine Markierung? aktuell.zustand(dir, True) # Wand öffnen aktuell = nb # weiter gehen aktuell.mark = "." # Zelle markieren print(l) fertig = False break # for-Schleife beenden if fertig: break # while-Schleife beenden </code> * Führen Sie es aus * Studieren und verstehen Sie das Programm. * Können Sie die einzelnen Schritte nachvollziehen und erklären, warum das entstehende Labyrinth so aussieht wie es aussieht? ===== Aufgabe 4 ===== * Im Programm ''aufgabe3.py'', kommentieren Sie die drittletzte Zeile mit dem ''break'' aus (jenes in der for-Schlaufe). * Können Sie das Resultat vorraussagen? * Führen Sie das Programm aus. Können Sie das Resultat erklären? ===== Aufgabe 5 ===== * Im Programm ''aufgabe3.py'', stellen Sie die drittletzte Zeile mit dem ''break'' wieder her. * Fügen Sie folgende Zeile unmittelbar vor der while Schlaufe ein: <code python> dirs = [0,2,1,3] </code> * Ersetzen Sie dann in der for-Schleife den ''range(4)'' durch ''dirs''. * Können Sie das Resultat vorraussagen? * Führen Sie das Programm aus. Können Sie das Resultat erklären? ===== Aufgabe 6 ===== * Immer noch im Programm ''aufgabe3.py'', fügen Sie folgende Zeile als zweite Zeile in der Datei ein: <code python> from random import shuffle </code> * Fügen Sie dann folgende Zeile unmittelbar vor der for-Schleife ein, und achten Sie auf korrekte Einrückung: <code> shuffle(dirs) </code> * Führen Sie das Programm mehrfach aus und erklären Sie das Resultat. Und die ''shuffle''-Funktion macht genau das, was ihr Name sagt. lehrkraefte/blc/informatik/glf24/laby/wegfinden.txt Last modified: 2025/05/25 09:08by Ivo Blöchliger