Java Reference
In-Depth Information
/*
* der Hamster soll sich in die naechste Reihe in noerdlicher
* Richtung begeben; vom Hamster aus gesehen, liegt diese Reihe
* rechts von ihm
*/
void begibDichRechtsUmInNaechsteReihe() { }
Bei der Implementierung der beiden Prozeduren ernteEineReiheNachOsten und ernteEine-
ReiheNachWesten stellt sich schnell heraus, dass beide dieselbe Gestalt haben. Also wird eine
Prozedur ernteEineReihe definiert und durch die beiden Prozeduren aufgerufen. Die Implemen-
tierung der Prozedur ernteEineReihe ist dabei relativ problemlos:
/*
* der Hamster soll alle Koerner in einer Reihe einsammeln;
* er laeuft dabei von Westen nach Osten
*/
void ernteEineReiheNachOsten() {
ernteEineReihe();
}
/*
* der Hamster soll alle Koerner in einer Reihe einsammeln;
* er laeuft dabei von Osten nach Westen
*/
void ernteEineReiheNachWesten() {
ernteEineReihe();
}
/*
* der Hamster soll alle Koerner in einer Reihe einsammeln
*/
void ernteEineReihe() {
sammle();
while (vornFrei()) {
vor();
sammle();
}
}
/*
* der Hamster sammelt alle Koerner eines Feldes ein
*/
void sammle() {
while (kornDa()) {
nimm();
}
}
Auch die Implementierung der beiden booleschen Funktionen bereitet keine großen Schwierigkei-
ten. Es muss einfach nur getestet werden, ob sich links bzw. rechts vomHamster eine Mauer befindet:
Search WWH ::




Custom Search