lehrkraefte:blc:informatik:glf25:labyrinthe:bilder-einlesen

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:glf25:labyrinthe:bilder-einlesen [2026/03/15 15:56] Ivo Blöchligerlehrkraefte:blc:informatik:glf25:labyrinthe:bilder-einlesen [2026/03/31 09:13] (current) – [Eigenes Bild erstellen] Ivo Blöchliger
Line 25: Line 25:
 pip install Pillow pip install Pillow
 </code> </code>
 +
 +===== Eigenes Bild erstellen =====
 +
  
 <WRAP todo> <WRAP todo>
   * Studieren Sie obiges Programm   * Studieren Sie obiges Programm
   * Verändern Sie das Programm so, dass das Bild invertiert erscheint.   * Verändern Sie das Programm so, dass das Bild invertiert erscheint.
-  * ''image.getpixel((x,y)) liefert eine Liste mit 3 Einträgen: Farbintensitäten rot, grün, blau von 0 bis und mit 255. Erklären Sie damit den Sinn der Bedingung in der Zeile mit dem ''if''+  * ''<nowiki>image.getpixel((x,y))</nowiki>'' liefert eine Liste mit 3 Einträgen: Farbintensitäten rot, grün, blau von 0 bis und mit 255. Erklären Sie damit den Sinn der Bedingung in der Zeile mit dem ''if''
-  * Erstellen Sie selbst ein Schwarz-Weiss-Bild mit einer Auflösung von 24x24 Pixeln mit einem Motiv, das aus einer einzigen, zusammenhängenden schwarzen Fläche besteht, die zwei gegenüberliegende Ränder berührt.+  * Erstellen Sie selbst ein Schwarz-Weiss-Bild mit einer Auflösung von 24x24 Pixeln mit einem Motiv, das aus einer einzigen, zusammenhängenden schwarzen Fläche besteht, die zwei gegenüberliegende Ränder berührt. Die Fläche muss überall mindestens 2 Pixel breit sein (oder besser 3). Die Fläche darf aber weisse Löcher haben. 
 + 
 +Beispiel-Bild: {{lehrkraefte:blc:informatik:glf25:labyrinthe:star.png}} oder {{lehrkraefte:blc:informatik:glf25:labyrinthe:brot.png}}
 </WRAP> </WRAP>
 +
 +===== Bild auf Labyrinth übertragen =====
 +Schreiben Sie ein Python-Programm das folgendes tut:
 +  * Bild einlesen
 +  * Neues, Labyrinth mit gleicher Grösse wie das Bild erzeugen (erst mal alle Mauern geschlossen). 
 +    * Die Grösse soll direkt aus der Grösse vom Bild bestimmt werden, d.h. das Programm soll unverändert für unterschiedlich grosse Bilder funktionieren.
 +  * Das Bild ins Labyrinth übertragen, d.h. alle Zellen, die schwarzen Pixeln entsprechen, sollen mit '#' markiert werden.
 +    * Zusätzlich soll für alle Zellen das Attribut 'bild' auf 0 (schwarz) oder 1 (weiss) gesetzt werden (z.B. mit lab[x,y].bild=0)
 +  * Geben Sie dieses Labyrinth aus.
 +
 +===== Startpunkte finden =====
 +  * In einem Labyrinth, wo wie oben einige Zellen mit ''#'' markiert wurden, ergänzen Sie das Programm so, dass
 +    * auf gegenüberliegenden Rändern vom Labyrinth möglichst weit voneinander entfernte Zellen gesucht werden, die mit ''#'' markiert sind (d.h. Teil der schwarzen Fläche).
 +  * Das sind dann die Startpunkte für das Labyrinth. Markieren Sie diese mit 'S' und 'Z'
 +  * Testen Sie Ihr Programm mit unterschiedlichen Bildern.
 +
 +===== Weg finden =====
 +  * Ergänzen Sie das Programm so, dass ein Labyrinth mit Startzelle 'S' generiert wird, mit der Zusatzbedingung, dass nur Zellen betreten werden, die mit ''#'' markiert sind.
 +  * Bestimmen Sie die Abfolge der Zellen, die dem Weg vom Start 'S' zum Ziel 'Z' entspricht.
 +    * Wie könnte dazu die Todo-Liste verwendet werden?
 +
 +
 +
 +
  • lehrkraefte/blc/informatik/glf25/labyrinthe/bilder-einlesen.1773590201.txt.gz
  • Last modified: 2026/03/15 15:56
  • by Ivo Blöchliger