Arbeitsblätter für JavaKara
Rückgabewerte von Methoden (Aufgaben)
Autor: Horst Gierhardt- In der in JavaKara eingebauten Methodensammlung "fehlen" einige Methoden.
Es gibt treeFront(), treeLeft() und treeRight() für Bäume, weil Kara
dafür Sensoren besitzt. Für Kleeblätter gibt es nur den Sensor onLeaf().
Wir können aber einen Sensor für Kleeblätter um Kara herum nachbilden, in dem
wir Kara dort hinschicken, mit onLeaf() nachsehen und zurück kehren lassen.
Das Ergebnis seiner Erkundung (true oder false) soll Kara zurück liefern.
Schreibe den Java-Code für leafLeft(), leafRight() und leafFront(). Findet Kara an der entsprechenden Stelle einen Baum, so soll false zurück geliefert werden.
- Kara steht vor einem ihm fremden Wald, denn darin befinden sich keinerlei Kleeblätter.
Er erinnert sich an das Märchen von Hänsel und
Gretel und deren Strategie, im fremden Wald Brotkrümel zu streuen. Statt der Brotkrümel
legt er beim Hineingehen in den Wald Kleeblätter ab, um den Rückweg wieder finden zu können.
Er startet am Waldrand an einem Pilz, geht hinein und verirrt sich tatsächlich im Wald.
In dieser Situation befindet er sich nun beim Start des zu schreibenden Programmes.
Er soll also seiner gelegten Kleeblattspur entlang zurück zum Pilz laufen.
Es empfiehlt sich, die neu eingerichteten "Sensoren" von Aufgabe 1 zu benutzen.
- Das vorherige Programm soll so modifiziert werden, dass er irgendwo am Waldrand gestartet war,
sich aber die Zahl 20 für die Anzahl der abgelegten Kleeblätter bis zum Verirren gemerkt hat.
Beim Ablegen des siebten Kleeblattes
hat er sich noch gemerkt, dass an dieser Stelle eine sehr schöne Lichtung mit vielen
wunderschönen Marienkäferinnen war.
Auf dem Rückweg soll er bei der schönen Lichtung einen Gruss ausgeben und dann weiter zurück
bis zu seinem Startpunkt am Waldrand gehen.
- Kara sieht vor sich eine freie Strecke. Links von dieser Strecke gehen ununterbrochen
verschieden lange Kleeblattspuren ab. Diese Kleeblattspuren sollen an seiner Laufstrecke
entlang nach rechts gespiegelt werden. Benutze zur Lösung des Problems eine Methode
spurlaenge(), die die Länge der aktuellen Spur links zurück liefert.
Die schon programmierten Methoden geheX() und legeX() dürfen/sollen
natürlich auch benutzt werden.