Die.java
1    /* 
2     * Model a die in terms of two properties: 
3     * - Order, the number of faces 
4     * - Top, the value of the top face 
5     */
6    
7    package chance;
8    
9    public class Die {
10   
11       // The Instance Variables (STATE)
12       private int order;
13       private int top;
14   
15       // The Constructors
16       public Die() {
17           order = 6;
18           top = (int)(( Math.random() * 6 ) + 1);
19       }
20   
21       public Die(int nrOfSides) {
22           order = nrOfSides;
23           top = (int)(( Math.random() * nrOfSides ) + 1);
24       }
25   
26       // The Methods (BEHAVIORS)
27       public int top() {
28           return top;
29       }
30   
31       public void roll() {
32           top = (int)(( Math.random() * order) + 1);
33       }
34   }
35