
/**
 * Class that models an American-style roulette wheel (with numbers 1-36, 0, and 00).
 * 
 * @author Dave Reed
 * @version 11/04/09
 */
public class RouletteWheel {
    private Die roller;          // used for generating the random spin

    /**
     * Constructor for objects of class RouletteWheel
     */
    public RouletteWheel() {
        this.roller = new Die(38);
    }

    /**
     * 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 = this.roller.roll();
        if (number > 36) {
            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.roller.getNumberOfRolls();
    }
}
