lehrkraefte:blc:informatik:glf24:laby:start

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:start [2025/05/13 05:44] – [Labyrinth-Objekt] Ivo Blöchligerlehrkraefte:blc:informatik:glf24:laby:start [2025/06/19 09:05] (current) – [Funktionierende Version] Ivo Blöchliger
Line 1: Line 1:
 ====== Programmierprojekt: Labyrinthe mit Bildern erzeugen ====== ====== Programmierprojekt: Labyrinthe mit Bildern erzeugen ======
 +
 +Ziel sind solche Labyrinthe: {{lehrkraefte:blc:informatik:glf24:laby:herz.pdf}}
  
 Der Fokus liegt darauf, die einzelnen Schritte im Detail zu verstehen. Gerade für das einlesen und bearbeiten von Bildern gibt es jede Menge an fertigen Bibliotheken (libraries). Selbstverständlich sollten für ein Softwareprodukt diese Bibliotheken verwendet werden. Wir werden aber so weit möglich, alles selber schreiben, aber externe Software für die Konvertierung und Anzeige von Bildern verwenden. Der Fokus liegt darauf, die einzelnen Schritte im Detail zu verstehen. Gerade für das einlesen und bearbeiten von Bildern gibt es jede Menge an fertigen Bibliotheken (libraries). Selbstverständlich sollten für ein Softwareprodukt diese Bibliotheken verwendet werden. Wir werden aber so weit möglich, alles selber schreiben, aber externe Software für die Konvertierung und Anzeige von Bildern verwenden.
  
   * Programmiersprache: Python.   * Programmiersprache: Python.
-  * Verwendete Libraries: So wenige wie möglich.+  * Verwendete Libraries: nur eigene.
   * Externe Programme: VSCode, Gimp, Browser (evtl. Inkscape).   * Externe Programme: VSCode, Gimp, Browser (evtl. Inkscape).
  
-===== Pixelbilder lesen, manipulieren, schreiben ===== +===== Einheit 1: Pixelbilder lesen, manipulieren, schreiben ===== 
-  * [[.:pnm]]+  * [[.:pnm|Einheit 1: Pixelbilder im pnm-Format erstellen und mit Python einlesen]]
  
-===== Labyrinth-Objekt =====+===== Einheit 2: Labyrinth-Objekt =====
 Das ist die zentrale Klasse, die alle nötigen Funktionen bereitstellt: Das ist die zentrale Klasse, die alle nötigen Funktionen bereitstellt:
-  * [[.:labyrintklasse|Labyrinth Klasse]]+  * [[.:labyrintklasse|Einheit 2: Erste Aufgaben mit der Labyrinth Klasse]] 
 + 
 +===== Einheiten 3+4: Wegfindungs Algorithmen ===== 
 +Wegfindungs-Algorithmen sind ganz zentral für die Erzeugung von Labyrinthen. Diese Einheit soll damit vertraut machen. 
 +  * [[.:wegfinden|Einheit 3: Einfachere Wegfindungs-Algorithmen]]   
 +  * [[.:wegfindentodo|Einheit 4: Komplette Wegfindungs-Algorithmen]] 
 + 
 +===== Einheit 5: Weg auf schwarzen Pixeln ausbauen ===== 
 +Ziel ist es, einen Weg zu erhalten, der möglichst alle Zellen besucht, die schwarzen Pixeln entsprechen. 
 + 
 +  * [[.:wegerweitern|Einheit 5: Einzelnen Weg auf schwarzen Pixeln erweitern.]] 
 + 
 +===== Einheit 6: Weg auf restliche Zellen als Labyrinth ausbauen ===== 
 +  * [[.:labyrinthkomplettieren|Einheit 6: Weg auf restliche Zellen als Labyrinth ausbauen.]] 
 + 
 +===== Einheit 7: Export als SVG ===== 
 +  * [[.:svgexport|Einheit 7: Export als SVG]] 
 + 
 +===== Einheit 8: Optionale Verbesserungen ===== 
 +  * [[.:cmdargs|Parameter auf der Kommandozeile]] 
 +  * [[.:bubbleholes|Löcher im Bild minimieren]] 
 + 
 +===== Funktionierende Version ===== 
 +Dieser Version müssen die Parameter auf der Kommandozeile übergeben werden. 
 + 
 +{{lehrkraefte:blc:informatik:glf24:laby:bildlabyrinth.zip}} 
 + 
 +Und eine pnm-Datei dazu: {{lehrkraefte:blc:informatik:glf24:laby:herz.pnm}} 
 + 
 +===== Web-Version ===== 
 +Mit einigen Anpassungen kann der Python-Code auch im Browser ausgeführt werden: https://ofi.tech-lab.ch/2025/teach/76f5054a/laby/  
 +Dazu muss eine geeignete Bilddatei (png, jpg) mit einer Auflösung von ca. 25 bis 100 Pixeln hochgeladen werden. 
 + 
 +Alle Dateien für die Web-Version: {{lehrkraefte:blc:informatik:glf24:laby:web.zip}}
  • lehrkraefte/blc/informatik/glf24/laby/start.1747115058.txt.gz
  • Last modified: 2025/05/13 05:44
  • by Ivo Blöchliger