All pastes #171946 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-09-15 18:39 UTC
rendered paste body
void main() {
    boolean geradeAnzahl = true; // 0 Koerner eingesammelt
    geradeAnzahl = sammle();
    while (vornFrei()) {
        vor();
        boolean gesammelt = sammle();

        /*
         * gerade Zahl + gerade Zahl = gerade Zahl
         * ungerade Zahl + ungerade Zahl = gerade Zahl
         * alle anderen Faelle ergeben eine ungerade Zahl
         */
        geradeAnzahl = 
            (geradeAnzahl && gesammelt) || 
            (!geradeAnzahl && !gesammelt);
    }

    /*
     * falls gerade Anzahl an Koernern gefunden: 
     * alle Koerner ablegen
     */
    if (geradeAnzahl) {
        while (!maulLeer()) {
            gib();
        }
    }
}

/*
 * sammle alle Koerner auf aktuellem Feld auf; falls gerade 
 * Anzahl an Koernern eingesammelt wurde, liefere true;
 * ansonsten liefere false
 */
boolean sammle() {
    boolean geradeAnzahl = true;  // 0 Koerner eingesammelt
    while (kornDa()) {
        nimm();
        
        /*
         * auf jede gerade folgt eine ungerade 
         * Zahl und umgekehrt
         */
        geradeAnzahl = !geradeAnzahl;  
    }
    return geradeAnzahl;
}