bedingte Anweisung

Bei der Umsetzung von Algorithmen hat man häufig den Fall, dass eine Anweisung nur bei Vorliegen einer bestimmten Bedingung erfolgen soll.

In der Programmierung gibt es dafür die so genannte bedingte Anweisung

.

Snap! stellt zwei Blöcke zur Verfügung. Der erste führt nur dann Anweisungen aus, wenn eine bestimmte Bedingung vorliegt. Beim zweiten erweiterten Block kann man auch angeben, welche Anweisungen bei einem negativen Wahrheitswert bearbeitet werden sollen.

Bei einer bedingten Anweisung wird eine Folge von Befehlen ausgeführt, wenn eine bestimmte Bedingung vorliegt. Im Sonst-Teil der bedingten Anweisung kann beschrieben werden, welche Anweisungen andernfalls bearbeitet werden sollen.

Bei unserem Mähroboter kann es zum Beispiel vorkommen, dass er auf ein Hindernis innerhalb der Rasenfläche trifft, zum Beispiel eine Gartenliege oder ein Rasensprenger. Der Roboter muss in diesem Fall, darauf reagieren und zum Beispiel ein Stück zurückfahren.
D. h. jedes Mal, wenn er sich etwas nach vorne bewegen sollte, prüft er zunächst mit seinen eingebauten Sensoren, ob er ein Hindernis berührt.

Im nächsten Programmierfenster sollst du dieses Verhalten implementieren. Dazu findest du den Block erzeuge Hindernisse, mit dem vier lilafarbene Hindernisse auf dem Rasen erzeugt werden, die du auch mit der Maus verschieben kannst. Der Mähroboter kann mit dem Baustein die Kollision mit einem Hindernis feststellen.

Erzeuge im nächsten Programmfenster vier Hindernisse und verteile sie auf dem Rasen.
Ergänze das Programm mithilfe der vorgegebenen Blöcke, sodass der Mähroboter innerhalb der inneren Wiederholung nur zwei Schritte nach vorne fährt, wenn er nicht ein Hindernis berührt. Andernfalls soll er sich zwei Schritt zurückbewegen und um 180° drehen.
Lösung:

Übung: Wegleitung durch Farbmarkierungen

Im folgenden Programmierfenster soll sich das ellipsenförmige Sprite solange vorwärts bewegen, bis es auf die rote Linie am rechten Rand trifft. Dabei gilt:

Die folgende Animation zeigt das gewünschte Verhalten:

Nutze die Anweisungsblöcke im folgenden Fenster, um das Sprite den richtigen Weg gehen zu lassen.
Lösung: