looks good looking for suggestions..
Question:
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 by 6 and converting to an integer results in an integer that
is between 0 and 5.
Code:
public class CrapsGame
{
public static int gameswon = 0;
public static int gameslost = 0;
public static int max = 6;
public static int min = 1;
public static void main(String[] args)
{
int diceValue,diceValue2,point;
for ( int i = 0 ; i < 10000; i++)
{
diceValue = diceSimulator(max,min );
System.out.println("original dicevalue is " + diceValue);
switch (diceValue)
{
case 7:
case 11:
gameswon++;
break;
case 2:
case 3:
case 12:
gameslost++;
break;
default:
point = diceValue;
do{
System.out.println("point " + point );
diceValue2 = diceSimulator(max,min);
if (diceValue2 == point)
{System.out.println("point is rolled..woo hooo");
gameswon++;}
else if
(diceValue2 == 7)
{System.out.println("7 is rolled..boo");
gameslost++;}
else
{
System.out.println("diceValue2 is " + diceValue2);
}
}
while ((diceValue2 != 7) && (diceValue2 != point) );
break;
}
}
System.out.println("games won: " + gameswon);
System.out.println("games lost: " + gameslost);
System.out.printf("Probability of winning:%.2f " , (double) gameswon/ (gameswon + gameslost));
}
public static int diceSimulator(int nmax,int nmin)
{
int randomn1 = (int) ( nmin + Math.random() * ((nmax - nmin + 1) ));
int randomn2 = (int) (nmin + Math.random() * ((nmax - nmin + 1 ))) ;
int random = randomn1 + randomn2;
return random;
}
}