Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:programmieren_iii_gra [2025-04-24 13:15] – [Aufgabe L22 – Pixel-Art (für Fortgeschrittene)] gra | gf_informatik:programmieren_iii_gra [2025-06-05 07:21] (aktuell) – [Programmieren Teil 3 – Listen (mit der while-Schleife)] gra | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
* Ich kann Listen anaylsieren (z.B. Mittelwert oder Höchstwert ermitteln) oder verändern (z.B. Duplikate entfernen etc). | * Ich kann Listen anaylsieren (z.B. Mittelwert oder Höchstwert ermitteln) oder verändern (z.B. Duplikate entfernen etc). | ||
* Ich kann das Modul '' | * Ich kann das Modul '' | ||
- | * Ich kann bestimmte Elemente | + | * Ich kann mit '' |
* Ich kann bestimmte Elemente in einer Liste zählen. | * Ich kann bestimmte Elemente in einer Liste zählen. | ||
Zeile 464: | Zeile 464: | ||
== Zusatzaufgabe 1 – Bruder Jakob == | == Zusatzaufgabe 1 – Bruder Jakob == | ||
- | Die Popcorn-Melodie ist einfach mit Blick auf die Rhythmus: Alle Töne sind gleich lang. Bei den meisten Liedern ist das nicht so. Zu m Beispiel | + | Die Popcorn-Melodie ist einfach mit Blick auf die Rhythmus: Alle Töne sind gleich lang. Bei den meisten Liedern ist das nicht so. Zum Beispiel |
{{: | {{: | ||
Zeile 485: | Zeile 485: | ||
<WRAP group> | <WRAP group> | ||
<WRAP column half> | <WRAP column half> | ||
+ | Folgende Listen... | ||
<code python> | <code python> | ||
# 4 Farben: 1 für Hintgergrund, | # 4 Farben: 1 für Hintgergrund, | ||
Zeile 502: | Zeile 503: | ||
<WRAP column half> | <WRAP column half> | ||
- | {{: | + | ...entsprechen diesem Bild: |
+ | |||
+ | {{: | ||
</ | </ | ||
</ | </ | ||
- | + | ||
+ | == Aufgabe == | ||
- Wähle ein Bild aus dieser {{ : | - Wähle ein Bild aus dieser {{ : | ||
- Passe die Farbliste und die Pixel-Liste so an, dass sie deinem Bild entsprechen. | - Passe die Farbliste und die Pixel-Liste so an, dass sie deinem Bild entsprechen. | ||
- Passe deinen Code an, sodass die Turtle das gewünschte Bild zeichnet. | - Passe deinen Code an, sodass die Turtle das gewünschte Bild zeichnet. | ||
+ | |||
+ | == Zusatzaufgabe == | ||
+ | Erweitere deine Pixelliste um eine weitere Dimension: Die Liste enthält mehrere Bilder, die nacheinander angezeigt werden, sodass eine Animation entsteht. Tipp: Starte mit bloss zwei Bildern. Verändere im zweiten Bild nur einzelne Punkte und beobachte den Effekt. | ||
+ | |||
===== Lösungen ===== | ===== Lösungen ===== | ||
Zeile 807: | Zeile 816: | ||
</ | </ | ||
- | < | + | < |
- | ++++Lösungen L16-L21| | + | ++++Lösungen L16-L22| |
=== Aufgabe L16 === | === Aufgabe L16 === | ||
Zeile 977: | Zeile 986: | ||
playTone(popcorn[i], | playTone(popcorn[i], | ||
i = i + 1 | i = i + 1 | ||
+ | </ | ||
+ | |||
+ | === Aufgabe L22 === | ||
+ | <code python> | ||
+ | from gturtle import * | ||
+ | morla = Turtle() | ||
+ | |||
+ | morla.right(90) | ||
+ | morla.penUp() | ||
+ | morla.hideTurtle() | ||
+ | |||
+ | # 4 Farben: 1 für Hintgergrund, | ||
+ | colors = ("# | ||
+ | |||
+ | # Pixel-Liste: | ||
+ | pixels = [[0, 0, 0, 1, 1, 0, 0, 0], | ||
+ | [0, 0, 1, 1, 1, 1, 0, 0], | ||
+ | [0, 1, 1, 1, 1, 1, 1, 0], | ||
+ | [0, 1, 0, 1, 1, 0, 1, 0], | ||
+ | [0, 2, 2, 2, 2, 2, 2, 0], | ||
+ | [0, 0, 2, 0, 0, 2, 0, 0], | ||
+ | [0, 3, 0, 3, 3, 0, 3, 0], | ||
+ | [3, 0, 3, 0, 0, 3, 0, 3]] | ||
+ | |||
+ | # Ein Quadrat mit gewünschter Farbe zeichnen: | ||
+ | def square(color, | ||
+ | morla.setFillColor(color) | ||
+ | morla.startPath() | ||
+ | count = 0 | ||
+ | while count < 4: | ||
+ | morla.forward(side) | ||
+ | morla.right(90) | ||
+ | count += 1 | ||
+ | morla.fillPath() | ||
+ | |||
+ | # Pixel für Pixel gemäss Liste zeichnen: | ||
+ | px_size = 20 | ||
+ | row = 0 | ||
+ | xpos = 0 | ||
+ | ypos = 0 | ||
+ | while row < 8: | ||
+ | morla.setPos(xpos, | ||
+ | column = 0 | ||
+ | while column < 8: | ||
+ | square(colors[pixels[row][column]], | ||
+ | morla.forward(px_size) | ||
+ | column = column + 1 | ||
+ | ypos = ypos - px_size | ||
+ | row = row + 1 | ||
</ | </ | ||
++++ | ++++ | ||
</ | </ |