Java Reference
In-Depth Information
// der Hamster soll den Berg erklimmen
void erklimmeDenBerg() {
do {
erklimmeEineStufe();
} while (!gipfelErreicht());
}
// der Hamster soll eine Stufe erklimmen
void erklimmeEineStufe() {
}
// hat der Hamster den Gipfel erreicht?
boolean gipfelErreicht() {
}
Wenden wir uns zunächst der Implementierung der Prozedur erklimmeEineStufe zu. Diese ist
nicht mehr besonders schwierig:
// der Hamster soll eine Stufe erklimmen
void erklimmeEineStufe() {
linksUm(); // nun schaut der Hamster nach oben
vor(); // der Hamster erklimmt die Mauer
rechtsUm(); // der Hamster wendet sich wieder dem Berg zu
vor();
// der Hamster springt auf den Vorsprung
gib();
// der Hamster legt ein Korn ab
}
// der Hamster dreht sich nach rechts um
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
Etwas schwieriger scheint die Implementierung der booleschen Funktion gipfelErreicht zu sein.
Wie kann der Hamster feststellen, ob er sich auf dem Gipfel befindet oder nicht? Überlegen Sie
einfach: Wann wird die Funktion aufgerufen? Sie wird jedes Mal dann aufgerufen, nachdem der
Hamster eine Stufe erklommen hat. Steht der Hamster danach vor einer Mauer, so ist der Gipfel
noch nicht erreicht. Befindet sich vor dem Hamster jedoch keine Mauer, dann steht er auf dem
Gipfel. Also ist die Implementierung der booleschen Funktion doch ganz einfach:
// hat der Hamster den Gipfel erreicht?
boolean gipfelErreicht() {
if (vornFrei()) {
return true;
} else {
return false;
}
}
Search WWH ::




Custom Search