Programmiere den Roboter:

Der Roboter soll nur die markierten Felder färben. Dafür musst du Fallunterscheidungen verwenden, die unter "weitere Hinweise" erklärt werden.

Tipp: Es gibt immer zwei markierte Felder übereinander. Weil der Roboter nicht wieder nach links gehen kann, muss er erst beide Felder färben, bevor er vorwärts geht.

Tipp: Es gibt immer zwei markierte Felder über- oder untereinander. Weil der Roboter nicht wieder nach links gehen kann, muss er erst beide Felder färben, bevor er vorwärts geht.


Weitere Hinweise:

Um zu prüfen, ob sich der Roboter auf einer Markierung befindet, und dann ggf. das aktuelle Feld zu färben, verwendest du folgende Bausteine:

Um zu prüfen, ob sich der Roboter auf einer Markierung befindet, und dann ggf. das aktuelle Feld zu färben, verwendest du die if-Kontrollanweisung:

  if aufMarkierung():
    faerbeFeld()

Wenn der Roboter auf einer Markierung steht, dann wird die Funktion faerbeFeld() aufgerufen. Wenn der Roboter nicht auf einer Markierung steht, dann passiert nichts.

Du kannst auch mehrere Anweisungen in einen falls-Baustein einfügen:

Alle Befehle, die in der Klammer stehen, werden nur dann ausgeführt, wenn die Bedingung zutrifft.

In diesem Beispiel also:

  • Wenn das Feld markiert ist, dann färbt der Roboter das Feld und geht anschließend einen Schritt nach rechts.
  • Wenn der Roboter nicht auf einer Markierung steht, dann tut er nichts.

Du kannst auch mehrere Anweisungen in eine if-Kontrollanweisung einfügen:

  if aufMarkierung():
    faerbeFeld()
    rechts()

Alle Befehle, die nach dem Doppelpunkt eingerückt stehen, werden nur dann ausgeführt, wenn die Bedingung zutrifft.

In diesem Beispiel also:

  • Wenn das Feld markiert ist, dann färbt der Roboter das Feld und geht anschließend einen Schritt nach rechts.
  • Wenn der Roboter nicht auf einer Markierung steht, dann tut er nichts.

Du kannst den falls-sonst-Baustein benutzen, um unterschiedliche Anweisung ausführen zu lassen, je nachdem, ob das Feld markiert ist oder nicht.

Beachte, dass du sowohl in der falls-Klammer als auch in der sonst-Klammer auch mehrere Anweisungen einfügen kannst.

Du kannst die if-Kontrollanweisung mit else erweitern, um unterschiedliche Anweisung ausführen zu lassen, je nachdem, ob das Feld markiert ist oder nicht.

  if aufMarkierung():
    faerbeFeld()
    rechts()
  else:
    oben()

Die Befehle, die nach einem Doppelpunkt eingerückt stehen, werden "als Block" entweder alle ausgeführt oder alle nicht ausgeführt. Welcher Block ausgeführt wird, hängt davon ab, ob die Bedingung hinter if erfüllt ist oder nicht.

In diesem Beispiel also:

  • Wenn das Feld markiert ist, dann färbt der Roboter das Feld und geht anschließend einen Schritt nach rechts.
  • Wenn der Roboter nicht auf einer Markierung steht, dann geht er nach oben.