Wiederholungen

Wir wollen die Katze herumlaufen lassen. Die Idee ist, dass ein Block von Anweisungen, z.B. «laufen», «wenden» wiederholt ausgeführt wird. Dazu verwenden wir einen Kontroll-Block mit dem folgendem Aussehen:

{
...
} :: control
Wiederhol-Block

Der Block hat drei Andock-Möglichkeiten: Oberhalb wird der zuvor ausgeführte Block angehängt. Unterhalb kommen die Blöcke die nach der Wiederholung ausgeführt werden sollen. Im Wiederhol-Block drin können beliebig viele Blöcke eingebaut werden. Diese werden dann mehrmals ausgeführt.

Scratch kennt drei verschiedene Wiederhol-Blöcke:

repeat
etwas x-Mal wiederholen, wobei x im Block als Zahl eingesetzt werden kann (hier x=10)

repeat (10)
...
end
repeat-Block

forever
etwas «für immer» wiederholen – resp. bis das Skript gestoppt wird (Endlosschleife)

forever
...
end
forever-Block

repeat until
etwas wiederholen, bis die im Block angegebene Bedingung erfüllt wird (hier x>10)

repeat until <(x) > [10]>
...
end
repeat until-Block

Das folgende Skript setzt zu Beginn die Katze an einen Startpunkt. Anschliessend kommt ein Wiederhol-Block dessen Anweisungen so lange wiederholt werden, bis man die Leertaste drückt. Schau dir die Anweisungen im Wiederhol-Block an. Was bewirken sie? Anschliessend, also wenn man die Leertaste drückt, wird noch der think-Befehl ausgeführt und 2 Sekunden später ist das Skript beendet.

when flag clicked
go to x: (-170) y: (60)
repeat until <key[space v] pressed?>
wait (0.1) secs
move (10) steps
next costume
if on edge, bounce
end
think [Hmm.. schon fertig?] for (2) secs
stop [all v]

Wiederholungen dieser Art werden beim Programmieren «Schleifen» (loops) genannt. Scratch kennt die for-Schleife (repeat) und eine Art while-Schleife (repeat until).

Programmiere das obenstehende Beispiel nach und führe es aus.

  • Gibt es Probleme? Kannst du die Probleme lösen?
  • Was geschieht, wenn du die Katze zu Beginn etwas drehst?

Zurück zum Zeichenstift: Verwende Wiederhol-Blöcke um die folgenden geometrischen Figuren zu zeichnen:

  • Dreieck
  • Fünf-Eck
  • Stern