Programmieren für Anfänger mit Blöcken
Kapitel 6
>
Stufe 4
Ziel
Entferne Unkraut im Durchgang zwischen Gebäuden unter Verwendung geschachtelter Bedingungen in Schleifen.
Der Durchgang zwischen den Gebäuden ist mit Unkraut bewachsen. Es wäre sinnvoll, das gesamte Unkraut zu sammeln und zu entsorgen. Du kannst diesen Vorgang automatisieren, indem du Bedingungen in Schleifen verwendest. Einige Blöcke im Editor sind deaktiviert und können aktiviert werden, um die Lücken zu füllen.
Erstelle eine Variable mit dem Namen bag und setze sie mit dem Block set variable auf 0.

Verwende eine while-Schleife mit einer Bedingung, um den Prozess zu automatisieren, und füge einen comparison-Block darin ein. Setze das Vergleichs-Element so, dass geprüft wird, ob bag kleiner als 10 ist, indem du das Dropdown-Menü auf > setzt.

Füge in der Schleife einen move forward-Block hinzu und ziehe den change variable-Block aus dem Menü Variables hinein. Wähle im Dropdown-Menü bag und stelle die Zahl auf 1.

Durch die Verwendung einer Bedingung in der while-Schleife läuft diese so lange weiter, wie die Bedingung wahr ist. Jeder Schleifendurchlauf fügt der Variablen bag ein Unkraut hinzu, und die Schleife stoppt automatisch, wenn bag zehn (10) erreicht.
Gehe zur ersten dunklen X-Markierung und wende dich der Kiste zu. In den beiden aufgestellten Kisten kippen wir die gesammelten Unkräuter. Verwende eine for-Schleife mit dem place-Block an den X-Markierungen. Die Schrittanzahl zwischen den Containern ist jedoch ungleichmäßig, da dazwischen eine Lücke ist. Mit geschachtelten if-Blöcken innerhalb der Schleife kannst du bestimmten Code überspringen, wenn eine Bedingung erfüllt ist.
Verwende einen for-Schleifenblock mit der Variable x von 0 bis 2 und einer Schrittweite von 1. Füge in der Schleife einen move forward-Block hinzu und verwende anschließend einen if-Block, der mit einem comparison-Block eingerichtet ist. Setze im comparison-Block das erste Feld auf x, das Dropdown-Menü auf Ungleich (≠) und den Zahlenwert auf 1.

Aktiviere die deaktivierten Blöcke im if-Block und fülle im place-Block den operators-Block aus, um die Anzahl der Unkräuter festzulegen, die in die Container abgelegt werden sollen. Wir müssen die gesammelten und in der Variablen bag gespeicherten Unkräuter jeweils zur Hälfte in die beiden Container geben. Dafür fügst du den bag-Variablenblock aus dem Menü Variables in das erste Feld des operators-Blocks ein, wählst im Dropdown-Menü % und trägst 2 in den Zahlenkreis ein.

Nur wenn x ungleich 1 ist (also wenn x 0 oder 2 ist), wird der Code zum Rechtsabbiegen, Unkraut ablegen und Linksabbiegen ausgeführt. So überspringst du die mittlere Iteration (wenn x gleich 1 ist), um die Lücke zwischen den Containern zu umgehen.
Nachdem du die Unkräuter gesammelt und am richtigen Ort abgelegt hast, erreiche den Ausgang, der mit einem Stern markiert ist, um das Level abzuschließen.