lehrkraefte:blc:informatik:glf24:laby:labyrintklasse

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf24:laby:labyrintklasse [2025/05/13 12:27] – [Labyrinth Klasse] Ivo Blöchligerlehrkraefte:blc:informatik:glf24:laby:labyrintklasse [2025/06/05 08:31] (current) – [Aufgabe 1] Ivo Blöchliger
Line 1: Line 1:
 ====== Labyrinth Klasse ====== ====== Labyrinth Klasse ======
 +<WRAP important>
 +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.
 +</WRAP>
   * Speichern Sie die Labyrinth-Klasse {{lehrkraefte:blc:informatik:glf24:laby:laby.py}} und die Zell-Klasse {{lehrkraefte:blc:informatik:glf24:laby:zelle.py}} im Verzeichnis ''labyrinth'', wo sich bereits die Datei ''pnmbild.py'', etc. befinden.   * Speichern Sie die Labyrinth-Klasse {{lehrkraefte:blc:informatik:glf24:laby:laby.py}} und die Zell-Klasse {{lehrkraefte:blc:informatik:glf24:laby:zelle.py}} im Verzeichnis ''labyrinth'', wo sich bereits die Datei ''pnmbild.py'', etc. befinden.
  
-===== Aufgabe =====+===== Aufgabe =====
   * Öffnen Sie das Verzeichnis ''labyrinth'' mit VS-Code (File -> Open Folder).   * Öffnen Sie das Verzeichnis ''labyrinth'' mit VS-Code (File -> Open Folder).
-  * Legen Sie im Verzeichnis ''labyrinth'' eine neue Datei ''aufgabe1.py'' an und kopieren Sie folgendes Python-Programm: +  * Legen Sie im Verzeichnis ''labyrinth'' eine neue Datei ''aufgabe0.py'' an und kopieren Sie folgendes Python-Programm: 
-<code python aufgab1.py>+<code python aufgabe0.py> 
 +# Von der Datei laby.py die Klasse Laby importieren:
 from laby import Laby from laby import Laby
  
-= Laby(4,3) +# Ein Labyrinth-Objekt der Grösse 4x3 erzeugen und in der Variablen lab speichern 
-print(l+lab = Laby(4,3) 
-for dir in range(4): +# lab ausgeben  
-    l[1,1].zustand(dir, True) +# dabei wird die Laby-Funktion __str__ aufgerufen, die die Zeichenkette produziert 
-print("Jetzt offen:") +print(lab
-print(l)+ 
 + 
 +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]}")
 </code> </code>
   * Führen Sie das Programm aus.   * Führen Sie das Programm aus.
   * Studieren Sie das Programm und verstehen Sie es.   * Studieren Sie das Programm und verstehen Sie es.
-  * Passen Sie das Programm so an, dass folgende Ausgabe entsteht:+ 
 +===== Aufgabe 1 ===== 
 +  * Kopieren Sie den Inhalt der Datei ''aufgabe0.py'' in eine neue Datei ''aufgabe1.py''
 +  * Passen Sie das Programm in der Datei ''aufgabe1.py'' so an, dass folgende Ausgabe entsteht.  
 +  * Entfernen Sie auch allen überflüssigen Code.
 <code txt> <code txt>
 +---+---+---+---+---+ +---+---+---+---+---+
Line 31: Line 54:
 +---+---+---+---+---+ +---+---+---+---+---+
 </code> </code>
-  * Hinweis: Das Programm kann sehr kompakt geschrieben mit der Methode einer Zelle ''nachbar(dir)''+  * Hinweis: Das Programm könnte kompakt mit der Methode ''nachbar(dir)'' geschrieben werden: 
 +    * z.B. liefert ''l[1,1].nachbar(1)'' die Zelle unterhalb (Richtung 1) der Zelle 1,1. Damit kann dann gleich weiter gemacht werden: 
 +    * z.B. wird mit ''l[1,1].nachbar(1).zustand(1, True)'' die Wand nach unten der Zelle unterhalb der Zelle 1,1 geöffnet. 
 + 
 +<hidden Lösungsvorschläge> 
 +<code python> 
 +for xy in range(4): 
 +  lab[2,xy].zustand(1, True)  # Nach unten öffnen 
 +  lab[xy,2].zustand(0, True)  # Nach rechts öffnen 
 +</code>
  
-<hidden Lösungsvorschlag> 
 <code python> <code python>
-a = [8011411198, 105, 101, 114, 101, 110, 32, 83, 105, 101, 32, 101, 115, 32, 100, 111, 99, 104, 32, 101, 114, 115, 116, 32, 109, 97, 108, 32, 115, 101, 108, 98, 101, 114, 46, 46, 46] +for richtung in range(4): 
-print("".join(map(lambda x:chr(x),a)))+    lab[2,2].zustand(richtungTrue) 
 +    lab[2,2].nachbar(richtung).zustand(richtungTrue)
 </code> </code>
 </hidden> </hidden>
Line 66: Line 98:
 </code> </code>
 <hidden Lösungsvorschlag> <hidden Lösungsvorschlag>
-Packen Sie for-Schleife für die $x$-Koordinate in eine weiter for-Schleife für die $y$-Koordinate.+Packen Sie for-Schleife für die $x$-Koordinate in eine weitere for-Schleife für die $y$-Koordinate.
 </hidden> </hidden>
  
  • lehrkraefte/blc/informatik/glf24/laby/labyrintklasse.1747139269.txt.gz
  • Last modified: 2025/05/13 12:27
  • by Ivo Blöchliger