/**
 * Verwaltet einen Spieler fuer das Spiel 6er-Wuerfeln. Der Spieler hat
 * jeweils die Wahl zu Wuerfeln oder Aufzuhueren und die Punkte zu sichern.
 * Wuerfelt er eine 6, verliert er die Punkte sofort. Dazu muss
 * dem Spieler ein Wuerfel-Objekt bekannt sein.
 *
 * @version 1.0 vom 19.06.2012
 * @author Thomas Schaller
 */

public class Spieler {

    // Anfang Attribute
    // Summe der Augenzahlen des aktuelle Durchgangs
    private int summe = 0;
    // Gesamtsumme der Augenzahlen aller Durchguenge
    private int gesamtsumme = 0;
    // Wuerfel-Objekt, das zum Wuerfeln verwendet wird.
    private Wuerfel wuerfel = null;
    // Ende Attribute

    // Anfang Methoden
    /** Liefert die Summe der Augenzahlen des aktuellen Durchgangs.
     * @return Summe der Augenzahlen
     */
    public int getSumme() {
        return summe;
    }

    /** Liefert die Gesamtsumme aller Durchguenge. Dabei werden die Augenzahlen jedes
     * Durchgangs addiert, sobald die Methode Aufhueren aufgerufen wird.
     * @return Gesamtsumme aller Durchguenge.
     */
    public int getGesamtsumme() {
        return gesamtsumme;
    }

    /** Der Spieler wuerfelt 1x. Wirft er eine 6 verliert er die aktuell gesammelten
     * Augen, ansonsten wird die gewuerfelte Zahl hinzuaddiert.
     * @return Summe der Augenzahlen des aktuellen Durchgangs
     */
    public int wuerfeln() {
        wuerfel.wuerfeln();
        if (wuerfel.getWurf()==6) {
            summe = 0;
        } else {
            summe = summe + wuerfel.getWurf();
        }// end of if
        return summe;
    }

    /** Der Spieler beendet den aktuellen Durchgang. Alle in diesem Durchgang gesammelten
     * Punkte werden zur Gesamtsumme hinzuaddiert.
     */
    public void aufhoeren() {
        gesamtsumme = gesamtsumme + summe;
        summe = 0;
    }

    /** Dem Spieler wird ein Wuerfel-Objekt uebergeben.
     * @param wuerfel Wuerfel, den der Spieler benutzen soll.
     */
    public void setWuerfel(Wuerfel wuerfel) {
        this.wuerfel = wuerfel;
    }

    // Ende Methoden
} // end of Spieler
