/* Bruce A. Maxwell CS 231 Fall 2016 Example class from lectures 1-3 */ // a class that implements an N-sided Die public class Die { // create a field field that specifies the number of faces on the Die private int faces; // default number of faces if no argument given to the constructor public Die() { faces = 6; } // constructor with an argument public Die(int numFaces) { faces = numFaces; } // accessor functions public int getFaces() { return faces; } public void setFaces(int numFaces) { faces = numFaces; } // copies the values from on object into this object public void set(Die d) { this.faces = d.faces; } // clone method public Die clone() { Die d = new Die(this.faces); return d; } // roll the dice using the random function from the math package public int roll() { int x = ((int)(Math.random() * faces)) + 1; return x; } // equals function for this class public Boolean equals(Die d) { return(this.faces == d.faces); } // test function public static void main( String[] argx ) { Die c; Die d = new Die(6); int i; System.out.println( "Number of faces on d: " + d.faces); // works because in Die class System.out.println("Cloning d"); c = d.clone(); System.out.println( " c faces: " + c.faces); System.out.println( " d faces: " + d.faces); System.out.println("\nModified c"); c.setFaces(8); System.out.println( " c faces: " + c.faces); System.out.println( " d faces: " + d.faces); System.out.println("\nRolling c"); for(/*initialization*/i=0; /*condition*/i<10; /*post-action*/i++) { int value = c.roll(); System.out.println( " Roll " + i + " is " + value ); if( value == c.getFaces() ) { System.out.println( " Maximum damage" ); } else if( value > 1 ) { System.out.println( " Ok" ); } else { System.out.println( " Miss" ); } } System.out.println("\nTesting equals"); c.setFaces(d.getFaces()); System.out.println( " d == c: " + (d == c)); System.out.println( " d.equals(c): " + d.equals(c) ); System.out.println("\nTerminating"); } }