Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf24:laby:start [2025/05/15 14:25] – [Einheit 5: Weg ausbauen] Ivo Blöchliger | lehrkraefte:blc:informatik:glf24:laby:start [2025/06/19 09:05] (current) – [Funktionierende Version] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Programmierprojekt: | ====== Programmierprojekt: | ||
| + | |||
| + | Ziel sind solche Labyrinthe: {{lehrkraefte: | ||
| 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: | * Programmiersprache: | ||
| - | * Verwendete Libraries: | + | * Verwendete Libraries: |
| * Externe Programme: VSCode, Gimp, Browser (evtl. Inkscape). | * Externe Programme: VSCode, Gimp, Browser (evtl. Inkscape). | ||
| Line 19: | Line 21: | ||
| * [[.: | * [[.: | ||
| - | ===== Einheit 5: Weg ausbauen ===== | + | ===== Einheit 5: Weg auf schwarzen Pixeln |
| Ziel ist es, einen Weg zu erhalten, der möglichst alle Zellen besucht, die schwarzen Pixeln entsprechen. | Ziel ist es, einen Weg zu erhalten, der möglichst alle Zellen besucht, die schwarzen Pixeln entsprechen. | ||
| - | Die Grundidee ist folgende: | + | * [[.:wegerweitern|Einheit 5: Einzelnen |
| - | * Man sucht zwei aufeinanderfolgende Zellen im Weg, so dass die beiden Zellen daneben schwarz, aber nicht auf dem Weg sind (z.B. Zellen a und b, oder c und d im folgendend Bild): | + | |
| - | <code txt> | + | ===== Einheit 6: Weg auf restliche Zellen als Labyrinth ausbauen ===== |
| - | +---+---+---+---+---+---+ | + | * [[.: |
| - | | | | + | |
| - | +---+---+---+---+---+ | + | ===== Einheit 7: Export als SVG ===== |
| - | | | + | * [[.:svgexport|Einheit 7: Export als SVG]] |
| - | +---+---+ | + | |
| - | </ | + | ===== Einheit 8: Optionale Verbesserungen ===== |
| - | * Die Wand zwischen a,b wird dann gesetzt, und der Weg über die zwei benachbarten Zellen x, y umgeleitet: | + | * [[.: |
| - | <code txt> | + | * [[.: |
| - | +---+---+---+---+---+---+ | + | |
| - | | | + | ===== Funktionierende Version ===== |
| - | +---+---+ | + | Dieser Version müssen |
| - | | | + | |
| - | +---+---+ | + | {{lehrkraefte: |
| - | </ | + | |
| - | * Das wiederholt man so lange, wie das möglich ist. Die Zellen werden zufällig ausgewählt, | + | |
| - | * Damit man nicht alle 4 Fälle programmieren muss, wird mit Operationen auf der Richtung (wie ein Winkel) gearbeitet. | + | |
| - | * ist '' | + | |
| - | * Die Klasse '' | + | |
| + | Und eine pnm-Datei dazu: {{lehrkraefte: | ||
| - | * Speichern Sie die Datei {{lehrkraefte:blc:informatik: | + | ===== Web-Version ===== |
| - | * Studieren Sie den Code der Datei '' | + | Mit einigen Anpassungen kann der Python-Code auch im Browser ausgeführt werden: https://ofi.tech-lab.ch/ |
| - | * In der Datei '' | + | Dazu muss eine geeignete Bilddatei |
| - | <code python> | + | |
| - | from wegerweiterung import wegerweiterung | + | |
| - | </code> | + | |
| - | * Rufen Sie die Funktion am Ende in der Datei '' | + | |
| - | <code python> | + | |
| - | wegerweiterung(weg) | + | |
| - | </ | + | |
| - | * Zeigen das Labyrinth am Schluss wieder an. | + | |
| - | * Testen Sie das Programm '' | + | |
| + | Alle Dateien für die Web-Version: | ||