Java Reference
In-Depth Information
int anzahl = 0;
while (kornDa()) {
nimm();
anzahl++;
}
// zur Vermeidung von Seiteneffekten!
int speicher = anzahl;
while (speicher > 0) {
gib();
speicher--;
}
return anzahl;
}
/*
* änzahl"-Felder vorruecken
*/
void vor(int anzahl) {
while (anzahl > 0) {
vor();
anzahl--;
}
}
/*
* in neue Blickrichtung ausrichten;
* Kodierung der Blickrichtung:
*0=Ost
* 1 = Nord
* 2 = West
* 3 = Sued
*/
void ausrichten(int aktuelleRichtung,
int neueRichtung) {
linksUm((neueRichtung + 4 - aktuelleRichtung) % 4);
}
// dreht sich so oft nach links, wie der Parameterwert anzeigt
void linksUm(int anzahlDrehungen) {
while (anzahlDrehungen > 0) {
linksUm();
anzahlDrehungen--;
}
}
Lösungshinweise:
Interessant ist die Prozedur ausrichten . Aufgrund der gewählten Codierung der Blickrichtungen
(0 = Ost , 1 = Nord , 2 = West , 3 = Süd) kann sie recht knapp durch Aufruf der überladenen Prozedur
linksUm formuliert werden. Wenn die neue Blickrichtung wertmäßig größer ist als die alte, muss
Search WWH ::




Custom Search