返回int值的Boolean方法;

Chr*_*ank 4 java boolean return

我正在自学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;
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我试图返回计数变量,但我得到一个错误,说我不能从我期望的布尔方法返回一个int值.但我也尝试打印出计数值System.out.println();但我在代码中找不到放置它的位置,因为我总是得到一个错误,指出println是无法访问的代码.

任何帮助,将不胜感激.谢谢!

这是程序的输出

[1,6] 7你赢了

[2,4]分= 6 [3,6] [3,3] 6你赢了

[3,3]分= 6 [5,1] 6你赢了

[6,1] 7你赢了

[6,3]分= 9 [5,1] [3,5] [2,6] [6,4] [5,6] [1,5] [6,3] 9你赢了

[3,3]分= 6 [1,5] 6你赢了

[5,1]分= 6 [1,5] 6你赢了

[2,2]点= 4 [6,4] [3,3] [3,4] [3,4] 7你输了

[4,5]点= 9 [6,4] [5,1] [1,2] [6,2] [1,5] [3,5] [6,5] [1,5] [5 ,2] [5,2] 7你输了

[2,2]点= 4 [5,3] [5,6] [6,4] [3,2] [6,5] [3,6] [4,4] [4,2] [4 ,3] [4,3] 7你输了

[6,6] 12你输了

你赢了11次.

dur*_*597 8

craps函数外部计算它们,这是一个简单的方法:

public static void main(String[] args) {
    Random rand = new Random();
    int counter = 0;
    for(int i = 0; i <= 10; i++){
        if(craps(rand)) counter++;
    }

    System.out.println("You won " + counter + " times!");
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,重要的是要注意它在craps功能之外的数量远远超过修改它的数量.在学习java时,请记住每个方法只能完成一项工作.您可能希望将craps功能分解为更小的部分来实践这一理念.一种工作原理的一种方法将使您在稍后回顾时更容易理解和调试更大的项目.