// Modified by e. adams from Fig. 6.9: Craps.java from Deitel & Deitel 6th Edition 
// Craps class simulates the dice game craps.
import java.util.Random;

public class Craps2 
{

   private enum Status { ROLL_AGAIN, WON, LOST };

   private final static int SNAKE_EYES = 2;
   private final static int TREY = 3;
   private final static int SEVEN = 7;
   private final static int YO_LEVEN = 11;
   private final static int BOX_CARS = 12;


   public void play()
   {
      int myPoint;
      Status gameStatus; 
      int sumOfDice; 
		
		myPoint = 0;
		sumOfDice = rollDice();
		
      switch ( sumOfDice ) 
      {
         case SEVEN: 
         case YO_LEVEN: 
            gameStatus = Status.WON;
            break;
         case SNAKE_EYES: 
         case TREY: 
         case BOX_CARS: 
            gameStatus = Status.LOST;
            break;
         default: 
            gameStatus = Status.ROLL_AGAIN; 
            myPoint = sumOfDice; 
            System.out.printf( "Point is: " + myPoint );
            break; 
      } // end switch 


      while ( gameStatus == Status.ROLL_AGAIN ) 
      { 
         sumOfDice = rollDice(); 

         if ( sumOfDice == myPoint ) 
            gameStatus = Status.WON;
         else
            if (( sumOfDice == SEVEN ) || (sumOfDice == YO_LEVEN))
				          gameStatus = Status.LOST;
      } // end while 


      if ( gameStatus == Status.WON )
         System.out.println( "Player wins" );
      else
         System.out.println( "Player loses" );
   } // end method play

 
   public int rollDice()
   {
	    Random randomNumbers;
  	    int die1, die2, sum;
		  
		  randomNumbers = new Random(); 
	  
        die1 = 1 + randomNumbers.nextInt( 6 );  
        die2 = 1 + randomNumbers.nextInt( 6 ); 

        sum = die1 + die2; 

       System.out.println();
       System.out.println( "Player rolled " + die1 + " and " + die2 + " for a total of " + sum);
		
      return sum; 
   } // end method rollDice
} // end class Craps2

