Roboterprogrammierung

Aufgaben Wiederholbefehle1

Scratch Bertl

Erntezeit mit Schleifen

1. Verändern Sie Ihr Programm für die Erntezeit so, dass das Bühnenbild (Stage) stage5-1 harvester.png alle Beeper erntet (also alle aufhebt).

2. Verändern Sie Ihr Programm für die Erntezeit so, dass das Bühnenbild (Stage) stage5-1 harvester.png so bearbeitet, dass an jeder Stelle des Feldes genau zwei Beeper liegen bleiben.


Die folgenden Projekte beinhalten unterschiedliche Stages (Bühnenbilder), die alle bearbeitet werden sollen:

4. beeper_fence (dt. Zaun, Zaunpfahl):
4a. Der Roboter Bertl befindet sich irgendwo in der Welt und schaut nach unten (Süden). Zwischen Bertl und der südlichen Grenzmauer befindet sich an jeder Ecke ein Beeper. Es ist derzeit kein Beeper auf der Position auf der sich Bertl befindet. Schreiben Sie die Funktion clearAllBeeperToTheWall(), die alle Beeper bis zur südlichen Wand aufhebt. Testen Sie Ihr Programm mit anderen Positionen und Anzahl Beeper.

4b. Mit der nächsten stage5-5.png befindt sich in der Initial Situation auf einem Beeper. Funktioniert Ihre Funtion clearAllBeeperToTheWall() noch immer? Wie haben Sie Ihre Funktion zu ändern (bzw. wo?)?

4c. Mit der nächsten stage5-7.png befindet sich eine beliebige Anzahl (0 .. 5) Beeper an den Ecken. Was ist nun zu tun? Ändern Sie Ihre Funktion clearAllBeeperToTheWall(), sodass er wieder alle Beeper bis zur südlichen Mauer aufhebt.


5. beeper_finder 5a. Der Roboter Bertl ist in der Initial Situation der stage5-8.png auf der Position im linken oberen Eck des Raumes (keine Tür oder Fenster) und schaut nach unten (Süden). Irgendwo im Raum befindet sich direkt neben einer Wand ein Beeper. Schreiben Sie ein Programm mit der Funktion findBeeper(), das die Position des Beepers findet.

5b. Verwenden Sie die weiteren Bühnenbilder um Ihre Funktion zu testen bzw. anzupassen, sodass Sie immer funktioniert.

5c. Schreiben Sie die Funktion so um, dass die neue Variable BeeperFound auf 1 (true) setzt, wenn Bertl den Beeper gefunden hat und sonst auf 0 (false).


  • 3. Komplexes Projekt: Erntezeit
    Schreiben Sie ein neues Programm für die Erntezeit sodass das im Bühnenbild (Stage) stage5-1 harvester.png alle Beeper mit möglichst wenigen Move-Befehlen erntet (also alle aufhebt), wobei der Roboter Bertl an einer beliebigen Position (z.B.: 5, 3) startet. Sie wissen auch nicht wie groß und wo sich das Feld in der Welt befindet. Allerdings kann davon ausgegangen werden, dass das Feld mindesten 2 Mal 2 Beeper groß ist und der Roboter immer in das Beeper-Feld plaziert wird.
    Anm.: Wenden Sie die schon früher besprochene Technik der stufenweise Verfeinerung (engl. stepwise refinement) an und verwenden Sie mehrere Funktionen zur Lösung dieser Aufgabe.

All wikipages