/* Aufgabe:
Der Hamster steht auf Kachel (0/0) mit
Blickrichtung Osten in einem rechteckigen 
Territorium ohne innere Mauern. Auf den Kacheln 
können 0, 1 oder mehrere Körner liegen. 
Der Hamster soll alle Körner einsammeln und dann
stehen bleiben.

Beispiel-Territorien:
- FeldAbgrasen1.ter
- FeldAbgrasen2.ter
*/

void main() {
    ernteEineReiheUndLaufeZurueck();
    linksUm();
    while (vornFrei()) {
        vor(); 
        linksUm();
        ernteEineReiheUndLaufeZurueck();
        linksUm();
    }
}

void ernteEineReiheUndLaufeZurueck() {
    ernteEineReihe();
    kehrt();
    laufeZurueck();
}

void ernteEineReihe() {
    sammle();
    while (vornFrei()) {
        vor();
        sammle();
    }
}

void laufeZurueck() {
    while (vornFrei()) {
        vor();
    }
}

void sammle() {
    while (kornDa()) {
        nimm();
    }
}

void rechtsUm() { 
    kehrt(); 
    linksUm(); 
}

void kehrt() { 
    linksUm(); 
    linksUm(); 
}


