lehrkraefte:blc:informatik:glf24:laby:wegfinden

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:glf24:laby:wegfinden [2025/05/13 12:27] – created Ivo Blöchligerlehrkraefte:blc:informatik:glf24:laby:wegfinden [2025/05/25 09:08] (current) – [Aufgabe 3] Ivo Blöchliger
Line 1: Line 1:
-====== Einheit 3: Wegfindungsalgorithmen ======+====== Einheit 3: Einfachere Wegfindungsalgorithmen ======
 Wir arbeiten weiterhin im Verzeichnis ''labyrinth'', wo auch die Dateien ''laby.py'' und ''zelle.py'' zu finden sind. Wir arbeiten weiterhin im Verzeichnis ''labyrinth'', wo auch die Dateien ''laby.py'' und ''zelle.py'' zu finden sind.
 ===== Aufgabe 3 ===== ===== 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.1747139238.txt.gz
  • Last modified: 2025/05/13 12:27
  • by Ivo Blöchliger