/*
 * Created on 04.01.2005
 *
 * $Id$
 */
package casino;

/**
 * Hier wird der Einsatz des Spielers abgespeichert.
 * 
 * @author <a href="mailto:boehm@javatux.de">oliver </a>
 * @since 04.01.2005
 * @version $revision$
 */
public class Einsatz {

    private int[] number = new int[37];
    private int pair;
    private int impair;
    private int red;
    private int black;
    private int manque;
    private int passe;

    /**
     * Zahl setzen
     * @param n         welche Zahl?
     * @param amount    welchen Betrag?
     */
    public void setZahl(int n, int amount) {
        this.number[n] = amount;
    }

    /**
     * Wievel wurde auf die Zahl 'n" gesetzt?
     * @param n
     * @return
     */
    public int getZahl(int n) {
        return this.number[n];
    }

    /**
     * Setze "amount" auf PAIR.
     * @param amount
     */
    public void setPair(int amount) {
        pair = amount;
    }

    /**
     * Wieviel wurde auf PAIR gesetzt?
     * @return
     */
    public int getPair() {
        return pair;
    }

    public void setImpair(int amount) {
        impair = amount;
    }

    public int getImpair() {
        return impair;
    }

    public void setRed(int amount) {
        red = amount;
    }

    public int getRed() {
        return red;
    }

    public void setBlack(int amount) {
        black = amount;
    }

    public int getBlack() {
        return black;
    }

    public void setManque(int amount) {
        manque = amount;
    }

    public int getManque() {
        return manque;
    }

    public void setPasse(int amount) {
        passe = amount;
    }

    public int getPasse() {
        return passe;
    }

    /**
     * Ermittelt den eingesetzten Betrag.
     * @return
     */
    public int getBetrag() {
        int amount = 0;
        for (int i = 0; i < number.length; i++) {
            amount += number[i];
        }
        amount += pair;
        amount += impair;
        amount += red;
        amount += black;
        amount += manque;
        amount += passe;
        return amount;
    }
    
    /**
     * FIXME: aus Performance-Ueberlegungem sollte man keine String-Operationen
     *        verwenden!
     */
    public String toString() {
        if (this.getBetrag() == 0) {
            return "nichts";
        }
        String s = "Einsatz:";
        if (pair > 0) {
            s += " " + pair + "x PAIR";
        }
        if (impair > 0) {
            s += " " + impair + "x IMPAIR";
        }
        if (red > 0) {
            s += " " + red + "x RED";
        }
        if (black > 0) {
            s += " " + black + "x BLACK";
        }
        if (manque > 0) {
            s += " " + manque + "x MANQUE";
        }
        if (passe > 0) {
            s += " " + passe + "x PASSE";
        }
        for (int i = 0; i <37; i++) {
            if (number[i] > 0) {
                s += " " + number[i] + " auf " + i;
            }
        }
        return s;
    }

}