## 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;

}

}