返回int值的java布尔方法;
我在自学Java,我创建了一个程序来模拟一个垃圾游戏。我有一个布尔方法的整个游戏。一切正常,但我想计算用户每次获胜的次数。计算这些胜利并打印它们的最佳方法是什么
这是我的密码:
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;
}
}
}
}
我试图返回count变量,但是我得到一个错误,说我不能从我期望的布尔方法返回int值。但是我也尝试用System.out.println();
打印出计数值,但是我在代码中找不到放置它的位置,因为我总是收到一个错误,指出println是不可访问的代码
任何帮助都将不胜感激。谢谢
这是程序的输出
[1,6] 7 you win
[2,4] point= 6[3,6][3,3] 6 you win
[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 win
[3,3] point= 6[1,5] 6 you win
[5,1] point= 6[1,5] 6 you win
[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 won 11 time(s).
# 1 楼答案
# 2 楼答案
在
craps
函数之外计算它们,这里有一个简单的方法:顺便说一句,需要注意的是,在
craps
函数之外进行计数比修改它要好得多。在学习java时,请记住,每个方法只应执行一项任务。你可能想练习将craps
函数分解成更小的部分来实践这一理念。一对一工作的理念将使更大的项目更容易理解和调试