
/**
 * Class that models an American-style roulette wheel (with numbers 1-36, 0, and 00).
 * 
 * @author Dave Reed
 * @version 2/20/10
 */
public class RouletteWheel1 {
    private final static int MAX_NUM = 36;
    private final static int NUM_ZEROS = 2;
    private static Die roller = new Die(RouletteWheel1.MAX_NUM + RouletteWheel1.NUM_ZEROS);
    
    private int numSpins;        // number of spins so far

    /**
     * Constructor for objects of class RouletteWheel
     */
    public RouletteWheel1() {
        this.numSpins = 0;
    }

    /**
     * Simulates a single spin of the roulette wheel.
     *   @return the number obtained by the spin  
     *           (Note: both wheel slots 0 and 00 are returned as 0.)
     */
    public int spin() {
        int number = RouletteWheel1.roller.roll();
        this.numSpins++;
        
        if (number > RouletteWheel1.MAX_NUM) {
            return 0;
        }
        else {
            return number;
        }
    }
    
    /**
     * Determines the color for a particular number on the wheel.
     *   @param number the number on the wheel
     *   @return that number's color (either "red", "black", or "green")
     */
    public String getColor(int number) {
        if (number == 0) {
            return "green";
        }
        else if (number ==  1 || number ==  3 || number ==  5 || number ==  7 ||
                 number ==  9 || number == 12 || number == 14 || number == 16 ||
                 number == 18 || number == 19 || number == 21 || number == 23 ||
                 number == 25 || number == 27 || number == 30 || number == 32 ||
                 number == 34 || number == 36) {
                return "red";
        }
        else {
            return "black";
        }
    }
    
    /**
     * Reports the number of times the wheel has been spun.
     *   @return the number of spins so far
     */
    public int getNumberOfSpins() {
        return this.numSpins;
    }
}
