lehrkraefte:blc:informatik:glf19:progchallenge

Programmier-Challenges

Diese Challenges richten sich an Schülerinnen und Schüler, die bereits die ersten Abschnitte bis und mit dem Abschnitt “Wiederholung” in den Kapiteln Turtle Grafik und/oder Grafik und Bilder bearbeitet haben.

Die folgenden Aufgaben sind einiges anspruchsvoller als die Aufgaben im TigerJython-Kurs.

Voraussetzungen: Die ersten zwei oder drei Abschnitte im Kapitel "Turtlegrafik". Sie brauche dazu “Wiederholungen”, die aber auch im zweiten Kapitel von Grafik und Bilder behandelt werden.

Mit Hilfe der Turtle-Grafik erstellen Sie folgende Grafik (Skalierung und Rotation dürfen unterschiedlich sein). Es geht natürlich auch mit Koordinatengrafik, ist aber mathematisch einiges anspruchsvoller.

Um Flächen zu füllen, studieren Sie den Unterabschnitt “Gefüllte Flächen” im Abschnitt “Farben” von Kapitel “Turtle Grafik”.

spirale.py
from gturtle import *
 
wurzel2 = 2**0.5
 
makeTurtle()
hideTurtle()
 
# Startlaenge der ersten Katheten
lang = 2
# Startposition
setScreenPos(Point(200,300))
 
 
#
# 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, setzten Sie 
# 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.

Voraussetzungen: Die ersten zwei Abschnitte vom Kapitel Koordinatengrafik.

Erzeugen Sie ein Bild, das folgendem Bild ähnlich sieht:

perspectivegrid.py
from gpanel import *
 
makeGPanel(-10, 10, -15, 5)
 
#
# Hier fehlt Ihr Code...
#

Erstellen Sie ein Bild, das “Honigwaben” darstellt. Gehen Sie dazu in folgenden Stufen vor:

  1. Nur ein Sechseck, ohne Farbfüllung.
  2. Eine horizontale Zeile von 10 Sechsecken.
  3. Die ganze 10×10 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.
  4. 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.
farbe = 1
# Wiederholung:
  # Wiederholung:
    if farbe==1:
      setFillColor("red")
      farbe = 2  # Beim nächsten Durchgang Farbe 2 verwenden
    elif farbe==2:
      # etc
      # etc

  • Selektion (if-Abfragen, Code nur in bestimmten Fällen ausführen).
  • Turtle Position speichern und wiederherstellen: pushState() und popState()
  • lehrkraefte/blc/informatik/glf19/progchallenge.txt
  • Last modified: 2019/10/23 09:06
  • by Ivo Blöchliger