/****************************************************************************
  Main Class:       Marktzee.java
  Author:           Jim Skrentny, skrentny@cs.wisc.edu
  Completion Date:  10/5/1999
  Modified by:      Mark Rich, 2/4/2000

  Course:           CS 302, Fall '99, Lecture 1
  TA:               Joe Example
  Assignment:       Exercise 11

  Compiler:         CodeWarrior (JDK 1.2)
  Platform:         Windows NT 4.0
******************************************************************************/

import java.util.*;

/**
 *  Represent a die object for games of chance and other programs using dice.
 * 
 *  Bugs: None
 **/ 
class Die {

    private int sides;      // die's number of sides
    private int top;        // die's top side (facing up)

    /**
     *  Constructs a die having a specified number of sides with 1 facing up.
     *  @param numberOfSides specified number of sides
     **/
    public Die (int numberOfSides) {
	sides = numberOfSides;
	top = 1;
    }

    /**
     *  Rolls the die causing a rondom side to face up.
     **/
    public void roll () {
            
        Random gen = new Random();   // random number generator
        int randomInt;               // stores random integer, >= 0
        randomInt = Math.abs(gen.nextInt());

        // limits range from 1 to sides
        top = randomInt % sides + 1;
    }

    /**
     *  Returns the side on top (facing up).
     *  @return side facing up
     **/
    public int getTop () {
        return top;
    }

    /**
     *  Returns the die's number of sides.
     *  @return number of sides
     **/
    public int getSides () {
        return sides;
    }
}
