I teach myself Java, and I created a program to simulate a game of dice. I have the whole game in a boolean method. Everything works fine, but I want to count every time the user wins. What is the best way to calculate these winnings and then print them?
Here is my code:
import java.util.Random; public class game{ public static void main(String[] args) { Random rand = new Random(); for(int i = 0; i <= 10; i++){ craps(rand); } } public static boolean craps(Random randomGen){ int roll1 = randomGen.nextInt(6) + 1; int roll2 = randomGen.nextInt(6) + 1; int sum = roll1 + roll2; int sumRepeat = sum; int count = 0; String win = "you win"; String lose = "you lose"; String point = "point="; if(sum == 7 || sum == 11){ System.out.printf("[%d,%d] %d %s\n",roll1,roll2,sum,win); count++; return true; } else if(sum == 2 || sum == 3 || sum == 12){ System.out.printf("[%d,%d] %d %s\n",roll1,roll2,sum,lose); return false; } else{ System.out.printf("[%d,%d] %s %d",roll1,roll2,point,sum); int roll3 = randomGen.nextInt(6) + 1; int roll4 = randomGen.nextInt(6) + 1; int sum2 = roll3 + roll4; do{ roll3 = randomGen.nextInt(6) + 1; roll4 = randomGen.nextInt(6) + 1; sum2 = roll3 + roll4; if(sum2 == sumRepeat){ System.out.printf("[%d,%d] %d %s\n",roll3,roll4,sum2,win); count++; return true; }else{ System.out.printf("[%d,%d]",roll3,roll4); } } while(sum2 != 7);{ System.out.printf("[%d,%d] %d %s\n",roll3,roll4,sum2,lose); return false; } } } }
I tried to return the count variable, but I get an error: I cannot return the int value from the boolean method that I was expecting. But I also tried to print the count value using System.out.println(); But I canβt find a place in the code to place it, because I always get an error message that println is unreachable code.
Any help would be greatly appreciated. Thanks!
Here is the result of the program
[1,6] 7 you win
[2,4] point = 6 [3,6] [3,3] 6 you won
[3.3] point = 6 [5.1] 6 you win
[6.1] 7 you win
[6.3] point = 9 [5.1] [3.5] [2.6] [6.4] [5.6] [1.5] [6.3] 9 you won
[3,3] point = 6 [1,5] 6 you won
[5.1] point = 6 [1.5] 6 you won
[2.2] point = 4 [6.4] [3.3] [3.4] [3.4] 7 you lose
[4,5] point = 9 [6,4] [5,1] [1,2] [6,2] [1,5] [3,5] [6,5] [1,5] [5 , 2] [5,2] 7 you lose
[2.2] point = 4 [5.3] [5.6] [6.4] [3.2] [6.5] [3.6] [4.4] [4.2] [4 , 3] [4.3] 7 you lose
[6.6] 12 you lose
You have won 11 times.