/**
 * Class that simulates a single die.
 *   @author Dave Reed
 *   @version 8/15/13
 */
 public class Die {
  private int numSides;   // number of die sides
  private int numRolls;   // number of rolls so far
 
  /**
   * Constructs a 6-sided die object
   */
  public Die() {
    this.numSides = 6;
    this.numRolls = 0;
  }

  /**
   * Constructs a die object
   *   @param sides number of die sides
   */
  public Die(int sides) {
    this.numSides = sides;
    this.numRolls = 0;
  }

  /**
   * Rolls the die, updating the number of rolls.
   *   @return random number between 1 and getNumSides()
   */
  public int roll() {
    this.numRolls++;
    return (int)(Math.random()*this.getNumberOfSides() + 1);
  }

  /**
   * Reports the number of sides on the die.
   *   @return number of die sides
   */
  public int getNumberOfSides() {
    return this.numSides;
  }

  /**
   * Reports the number of times the die has been rolled.
   *   @return number of die rolls so far
   */
  public int getNumberOfRolls() {
    return this.numRolls;
  }
} 
