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:glf19:progchallenge [2019/09/24 12:25] – [spirale.py] Ivo Blöchliger | lehrkraefte:blc:informatik:glf19:progchallenge [2019/10/23 07:06] (current) – [waben.py] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Programmier-Challenges ====== | ||
| + | Diese Challenges richten sich an Schülerinnen und Schüler, die bereits die ersten Abschnitte bis und mit dem Abschnitt " | ||
| + | |||
| + | Die folgenden Aufgaben sind einiges anspruchsvoller als die Aufgaben im TigerJython-Kurs. | ||
| + | ===== spirale.py ===== | ||
| + | Voraussetzungen: | ||
| + | |||
| + | Mit Hilfe der **Turtle-Grafik** erstellen Sie folgende Grafik (Skalierung und Rotation dürfen unterschiedlich sein). | ||
| + | //Es geht natürlich auch mit Koordinatengrafik, | ||
| + | |||
| + | Um Flächen zu füllen, studieren Sie den Unterabschnitt " | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | <code python spirale.py> | ||
| + | from gturtle import * | ||
| + | |||
| + | wurzel2 = 2**0.5 | ||
| + | |||
| + | makeTurtle() | ||
| + | hideTurtle() | ||
| + | |||
| + | # Startlaenge der ersten Katheten | ||
| + | lang = 2 | ||
| + | # Startposition | ||
| + | setScreenPos(Point(200, | ||
| + | |||
| + | |||
| + | # | ||
| + | # Hier fehlt Ihr Code... | ||
| + | # | ||
| + | # Hinweis: Zeichnen Sie erst einmal ein | ||
| + | # gleichschenklig rechtwinkliges Dreieck | ||
| + | # mit einem Quadrat. Verwenden Sie dazu | ||
| + | # jeweils den Befehl forward(lang). | ||
| + | # Passen Sie die Variable lang nötigenfalls | ||
| + | # an, z.B. (hier nicht so brauchbar) mit | ||
| + | # lang = lang*42 | ||
| + | # | ||
| + | # Wenn die erste Figur funktioniert, | ||
| + | # den ganzen Code in eine for-Schlaufe oder repeat-Schlaufe. | ||
| + | # | ||
| + | # Stellen Sie sicher, dass die Turtle nach der Figur am | ||
| + | # richtigen Ort ist und in die richtige Richtung schaut. | ||
| + | </ | ||
| + | |||
| + | ===== perspectivegrid.py ===== | ||
| + | Voraussetzungen: | ||
| + | |||
| + | Erzeugen Sie ein Bild, das folgendem Bild ähnlich sieht: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | <code python perspectivegrid.py> | ||
| + | from gpanel import * | ||
| + | |||
| + | makeGPanel(-10, | ||
| + | |||
| + | # | ||
| + | # Hier fehlt Ihr Code... | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | ===== waben.py ===== | ||
| + | Erstellen Sie ein Bild, das " | ||
| + | - Nur ein Sechseck, ohne Farbfüllung. | ||
| + | - Eine horizontale Zeile von 10 Sechsecken. | ||
| + | - Die ganze 10x10 Wabe. Verwenden Sie dazu pushState() und popState(), um die Position und Richtung der Turtle am Anfang einer Zeile zu speichern und am Ende einer Zeile wieder herzustellen. | ||
| + | - Für die Farbfüllung können Sie wie folgt vorgehen: Definieren Sie vor den Wiederholungen eine Variable farbe=1. Vor dem Zeichnen eines Sechsecks legen Sie die Füllfarbe fest und ändern die Variable farbe entsprechend. | ||
| + | |||
| + | <code python> | ||
| + | farbe = 1 | ||
| + | # Wiederholung: | ||
| + | # Wiederholung: | ||
| + | if farbe==1: | ||
| + | setFillColor(" | ||
| + | farbe = 2 # Beim nächsten Durchgang Farbe 2 verwenden | ||
| + | elif farbe==2: | ||
| + | # etc | ||
| + | # etc | ||
| + | </ | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ==== Hilfestellungen ==== | ||
| + | * [[http:// | ||
| + | * Turtle Position speichern und wiederherstellen: | ||
| + | * | ||
| + | |||