Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ü/** Loesung zu Szenario 24 - Die laengste Baumreihe
- *
- * Aufgabenstellung:
- * Auf der Wiese gibt es verschiedene Baumreihen. Kara soll nun die Laenge
- * (in Anzahl Baeumen) der laengsten Baumreihe ermitteln und auf der Konsole
- * ausgeben.
- * Zwischen den Baumreihen ist immer mindestens ein Feld Platz.
- * Auf dem letzten Feld liegt ein Kleeblatt.
- *
- * Anforderung: Variablenwerte zwischenspeichern und ueberschreiben
- *
- * Kommentiere deine Programmierung!
- */
- public class MyKara extends Kara
- {
- // Damit die Variable 'laengsteBaumreihe' fuer alle Methonden gueltig ist,
- // muss sie ausserhalb der Methoden definiert und initialisiert werden.
- int laengsteBaumreihe = 0;
- public void act()
- {
- // Solange Kara nicht auf einem Blatt steht,
- while (!onLeaf())
- {
- // Falls er vor einem Baum steht, soll er sich links drehen und
- // die Baumreihe zaehlen.
- if (treeFront())
- {
- baeumeZaehlen();
- }
- // Ansonsten soll er gehen. Die ist z. B. der Fall, wenn zwischen
- // den Baumreihen mehr Platz ist und er so bis an die naechste
- // Baumreihe gelangen soll.
- else
- {
- move();
- }
- }
- // Hier wird ein String-Text und ein Variablenwert auf der Konsole
- // ausgegeben. Er wird mit '+', einer sogenannten Konkatenation, d.h.
- // einer Verknuepfung, miteinander verbunden.
- System.out.println("Die laengste Baumreihe ist " + laengsteBaumreihe
- + " Baeume lang.");
- // Hier steht, was nach dem 'while (!onLeaf())' passiert, naemlich
- // dass das Szenario beendet werden soll.
- stop();
- }
- // Kara geht die Beimreihen hoch und wieder herunter und zaehlt dabei die
- // Baeume.
- public void baeumeZaehlen()
- {
- // Die Variable baeumeHoch soll nur innerhalb der Methode baeumeZaehlen
- // gueltig sein.
- int baeumeHoch = 0;
- turnLeft();
- // Kara zaehlt so lange Baeume zaehlen, wie Baumreihen neben ihm sind.
- while (treeRight())
- {
- // Da schon ein Baum neben Kara steht, soll er erst zaehlen und
- // dann erst gehen.
- baeumeHoch = baeumeHoch + 1;
- move();
- }
- // Kara geht, wenn die Baumreihe zu Ende ist, um die Baumreihe herum.
- turnRight();
- move();
- move();
- turnRight();
- // Die Variable baeumeRunter soll ebenfalls nur innerhalb der Methode
- // baeumeZaehlen gueltig sein.
- int baeumeRunter = 0;
- // Kara geht wieder die Baumreihe herunter.
- // Kara hat sich den Wert von baumeHoch 'gemerkt und geht ebensoviele
- // Schritte auch wieder herunter.
- while (baeumeRunter < baeumeHoch)
- {
- move();
- baeumeRunter = baeumeRunter + 1;
- }
- turnLeft();
- // Kara testet, ob die momentane Reihe laenger ist als die zuvor
- // laengste Baumreihe. Ist dies der Fall, wird die Variable
- // laengsteBaumreihe ueberschrieben.
- if (baeumeHoch > laengsteBaumreihe)
- {
- laengsteBaumreihe = baeumeHoch;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement