Table of Contents

Labyrinth Klasse

Falls Sie die Dateien laby.py und zelle.py vor dem 25. Mai heruntergeladen haben, laden Sie diese noch einmal herunter und erstetzen Sie die alten Dateien damit.

Aufgabe 0

aufgabe0.py
# Von der Datei laby.py die Klasse Laby importieren:
from laby import Laby
 
# Ein Labyrinth-Objekt der Grösse 4x3 erzeugen und in der Variablen lab speichern
lab = Laby(4,3)
# lab ausgeben 
# dabei wird die Laby-Funktion __str__ aufgerufen, die die Zeichenkette produziert
print(lab)
 
 
print("Zelle 1,1 in Richtung 0 (d.h. rechts) öffnen (True) und markieren")
lab[1,1].zustand(0, True)
# Markierung anbringen
lab[1,1].mark = ">"
print(lab)
 
 
lab[1,0].zustand(1, True)
# Markierung anbringen
lab[1,0].mark = "v"
print(lab)
 
for richtung in range(4):  # Folgende Zeile wiederholen, erst für richtung=0, dann richtung=1, bis und mit richtung=3.
    print(f"Zelle 1,1 in Richtung {richtung}: {lab[1,1].offen[richtung]}")

Aufgabe 1

+---+---+---+---+---+
|   |   |   |   |   |
+---+---+   +---+---+
|   |   |   |   |   |
+---+---+   +---+---+
|                   |
+---+---+   +---+---+
|   |   |   |   |   |
+---+---+   +---+---+
|   |   |   |   |   |
+---+---+---+---+---+

Lösungsvorschläge

Lösungsvorschläge

for xy in range(4):
  lab[2,xy].zustand(1, True)  # Nach unten öffnen
  lab[xy,2].zustand(0, True)  # Nach rechts öffnen
for richtung in range(4):
    lab[2,2].zustand(richtung, True)
    lab[2,2].nachbar(richtung).zustand(richtung, True)

Aufgabe 2

aufgabe2.py
from laby import Laby
 
l = Laby(10,5)
for x in range(l.breite-1):
    l[x,0].zustand(0, True)
 
print(l)
+---+---+---+---+---+---+---+---+---+---+
|                                       |
+---+---+---+---+---+---+---+---+---+---+
|                                       |
+---+---+---+---+---+---+---+---+---+---+
|                                       |
+---+---+---+---+---+---+---+---+---+---+
|                                       |
+---+---+---+---+---+---+---+---+---+---+
|                                       |
+---+---+---+---+---+---+---+---+---+---+

Lösungsvorschlag

Lösungsvorschlag

Packen Sie for-Schleife für die $x$-Koordinate in eine weitere for-Schleife für die $y$-Koordinate.