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/14 17:44] – [Einheiten 3+4: Wegfindungs Algorithmen] 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 ===== |
| - | +---+ | + | * [[.: |
| - | | | | d # | | + | |
| - | +---+ | + | ===== Einheit 7: Export als SVG ===== |
| - | | | a b | | c | | | + | * [[.: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 die Parameter |
| - | | | a | b | | c | | | + | |
| - | + | + | {{lehrkraefte: |
| - | </ | + | |
| - | * Das wiederholt man so lange, wie das möglich ist. Die Zellen werden zufällig ausgewählt, | + | Und eine pnm-Datei dazu: {{lehrkraefte: |
| - | * Damit man nicht alle 4 Fälle programmieren muss, wird mit Operationen | + | |
| - | * ist '' | + | |
| - | * Die Klasse '' | + | |
| + | ===== Web-Version ===== | ||
| + | Mit einigen Anpassungen kann der Python-Code auch im Browser ausgeführt werden: https:// | ||
| + | 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: | ||