bedingte Wiederholung

Nicht immer soll etwas eine bestimmte Anzahl oft wiederholt werden. Häufig soll die Wiederholung enden, wenn eine bestimmte Situation oder Bedingung vorliegt.
Ein Mähroboter hat üblicherweise ein bestimmtes Gebiet, das er abfahren soll, das durch so genannte Begrenzungsdrähte, die im Rasen verlegt sind, begrenzt wird. Sobald er auf eine dieser Begrenzungsdrähte trifft, dreht er um. Wir setzen dies in unserer Simulation ganz ähnlich um. Wir lassen den Roboter solange geradeaus fahren, bis er auf eine Begrenzungslinie trifft. Dann soll er sich um einen zufälligen Winkel zwischen 150° und 210° drehen und seine Fahrt fortsetzen. Die Begrenzung wird durch ein neues Sprite realisiert, das die Form eines schwarzen Rechtecks und den Namen Begrenzung hat.

Das Vorliegen einer Bedingung wird durch einen Wahrheitswert (wahr oder falsch) als sechseckiger Block dargestellt. In diesem Fall verwenden wir den Block , der je nachdem, ob das schwarze Rechteck vom Mähroboter berührt wird oder nicht, den entsprechenden Wahrheitswert repräsentiert. Als Wiederholung verwenden wir den Block . Die Anweisungen innerhalb dieses Blocks werden solange wiederholt, bis eine bestimmte Bedingung erfüllt ist.

Die Animation zeigt, wie der Mähroboter unabhängig von seiner Position geradeaus bis zur Begrenzung fährt.

Bei einer bedingten Wiederholung wird eine Folge von Anweisungen so lange wiederholt ausgeführt, bis eine bestimmte Bedingung erfüllt ist.

Der zweite wichtige Block ist der für die Erzeugung von zufälligen Zahlen. Du findest ihn in der Kategorie Operatoren. Er kann immer dort in anderen Blöcken eingesetzt werden, wo eine konkrete Zahl stehen kann.

Verwende die vorgegebenene Blöcke im nächsten Programmfenster, um einen Algorithmus zu erstellen, der den Roboter geradeaus bis zur Begrenzungslinie fahren lässt. Anschließend soll er sich um einen zufälligen Winkel zwischen 150° und 210° drehen und wieder ein kleines Stück geradeaus fahren, um die Begrenzung nicht mehr zu berühren.
Teste dein Programm mehrmals hintereinander.
Lösung:

Jetzt müssen wir nur noch dafür sorgen, dass dieser Programmteil immer wieder ausgeführt wird. Wir verwenden dazu eine Wiederholung mit einer festen Anzahl von 200.

Ergänze obiges Programm, so dass der Roboter 200-mal bis zur Begrenzung fährt und wieder umdreht.
Lösung:

Damit haben wir schon einen ganz gut funktionierenden Mähroboter entworfen, der über längere Zeit den eingezäunten Bereich abmäht. Um zu sehen, wie erfolgreich er nach seiner Arbeit ist, werden wir den Ablauf etwas beschleunigen. Dazu packen wir unseren Algorithmus in den Block . Dieser bewirkt, dass die Anweisungen innerhalb des Blocks mit maximaler Geschwindigkeit ausgeführt werden.

Umgebe dein Programm im letzten Fenster mit dem Warp-Block und teste das Verhalten.

Außerdem wäre es natürlich interessant zu untersuchen, wie sich unser Mähroboter in anderen Gärten verhält. Mäht er auch entlegene und verwinkelte Bereiche gleichmäßig?
Wir überprüfen, dies indem wir keine rechteckige Begrenzung, sondern einen beliebigen Linienzug wählen. Dazu musst du zunächst das Objekt Begrenzung auswählen, anschließend auf die Registerkarte Kostüme klicken und mit Hilfe des Stiftsymbols einen neuen Begrenzungsdraht zeichnen.
Die folgende Animation zeigt, wie du vorgehen musst.

Zeichne im zuletzt verwendeten Programmfenster verschiedene Begrenzungsbereiche und prüfe, wie gut der Mähroboter arbeitet.