Saturday 20 August 2016

Chapter 6 Exercise 32, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

**6.32 (Game: chance of winning at craps) Revise Exercise 6.30 to run it 10,000 times and display the number of winning games.

public class ProgrammingExercise6_32 {
 
 public static void main(String[] args) {
  int win = 0, lose = 0;
 
  for (int i = 0; i < 10000; i++) {
   if (craps() == 1) {
    win++;
   } else {
    lose++;
   }
  }
 
  System.out.println("Number of winning game is " + win);
  System.out.println("Number of losing game is " + lose);
  System.out.println("The chance of winning is " + (win / 10000.0));
 }
 
 // Generate random number in integer
 public static int intRandom(int lowerBound, int upperBound) {
  return (int) (lowerBound + Math.random()
    * (upperBound - lowerBound + 1));
 }
 
 public static int roll() {
  int dice1 = intRandom(1, 6);
  int dice2 = intRandom(1, 6);
  int sum = dice1 + dice2;
 
  System.out.println("You roll " + dice1 + " + " + dice2 + " = " + sum);
 
  return sum;
 
 }
 
 public static int craps() {
 
  int first = 0;
  int status = 0; // 0 = neither lose or win, 1 = win , -1 = lose
 
  // First roll
 
  first = roll();
  // check craps
  switch (first) {
  case 2:
  case 3:
  case 12:
   System.out.println("You lose");
   status = -1;
   break;
  case 7:
  case 11:
   System.out.println("You win");
   status = 1;
   break;
  default:
   System.out.println("The point is " + first);
   // next roll
   int next;
   do {
    next = roll();
 
   } while (!(next == first || next == 7));
 
   if (next == 7) {
    System.out.println("You lose");
    status = -1;
   } else {
    System.out.println("You win");
    status = 1;
   }
 
  }
 
  return status;
 
 }
 
}

No comments :

Post a Comment