In the game of craps, a pass line bet proceeds as follows. Two six-sided dice are rolled; the first roll of the dice in a craps round is called the “come out roll.” A come out roll of 7 or 11 automatically wins, and a come out roll of 2, 3, or 12 automatically loses. If 4, 5, 6, 8, 9, or 10 is rolled on the come out roll, that number becomes “the point.” The player keeps rolling the dice until either 7 or the point is rolled. If the point is rolled first, then the player wins the bet. If a 7 is rolled first, then the player loses.
Write a program that simulates a game of craps using these rules without human input. Instead of asking for a wager, the program should calculate whether the player would win or lose. The program should simulate rolling the two dice and calculate the sum. Add a loop so that the program plays 10,000 games. Add counters that count how many times the player wins, and how many times the player loses. At the end of the 10,000 games, compute the probability of winning [i.e., Wins / (Wins + Losses)] and output this value. Over the long run, who is going to win the most games, you or the house?
Note: To generate a random number x, where 0 < x <= 1, use x = Math.random( );. For example, multiplying Math.random( ) by 6 and converting to an integer results in a random integer that is between 0 and 5.
And heres my code I have been looking at it for 2 hours and i just cannot seem to find why it does not run heres the code
Expand|Select|Wrap|Line Numbers
- public class CrapsGame {
- public static void main(String[]args)
- {
- final int GAMES = 10000;
- int num1,num2,num3,win = 0,lose=0;
- double prob;
- die die1 = new die();
- die die2 = new die();
- for(int roll = 1; roll<= GAMES;roll++)
- {
- die1.roll();
- die1.roll();
- num1 = die1.getFaceValue()+ die2.getFaceValue();
- if (num1 == 7 || num1==11)
- {
- win++;
- }
- else if (num1==2 || num1==3 || num1 == 12)
- {
- lose++;
- }
- else {
- die1.roll();
- die2.roll();
- num2 = die1.getFaceValue() + die2.getFaceValue();
- while(num2!=num1 || num2!=7)
- {
- die1.roll();
- die2.roll();
- num3 = die1.getFaceValue() + die2.getFaceValue();
- }
- if (num3==num1)
- {
- win++;
- }
- else if (num2==7)
- {
- lose++;
- }
- }
- }
- prob = (win/(win+lose));
- if(prob>50)
- {
- System.out.println("The probability of you winning is more than the houses");
- }
- else if (prob <50)
- {
- System.out.println("The probability of you winning is less than the houses");
- }
- else
- {
- System.out.println("The probability of you winning is the same as the houses");
- }
- }
- }