public class Solist extends Frosch { /*
Aufgabe:
Der Frosch sitzt an einem Teich.
Er soll den Teich umrunden, bis er auf eine 
Muecke stoesst.

Beispiel-Territorien:
- teich1.ter
- teich2.ter
*/

void main() {
    richtigPositionieren();
    while (!mueckeDa()) {
        einFeldBearbeiten();
    }
}

void richtigPositionieren() {
    while (!linksWasser()) {
        linksUm();
    }
}

void einFeldBearbeiten() {
    if (!linksWasser()) {
        linksUm();
        huepfen();
    } else if (!vorneWasser()) {
        huepfen();
    } else if (!rechtsWasser()) {
        rechtsUm();
        huepfen();
    } else if (!hintenWasser()) {
        kehrt();
        huepfen();
    }
}

boolean vorneWasser() {
    return !vorneGras();
}

boolean linksWasser() {
    linksUm();
    if (vorneWasser()) {
        rechtsUm();
        return true;
    } else {
        rechtsUm();
        return false;
    }
}

boolean rechtsWasser() {
    rechtsUm();
    if (vorneWasser()) {
        linksUm();
        return true;
    } else {
        linksUm();
        return false;
    }
}

boolean hintenWasser() {
    kehrt();
    if (vorneWasser()) {
        kehrt();
        return true;
    } else {
        kehrt();
        return false;
    }
}

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


 }