Java:滚动两个骰子直到得到所需的总和

时间:2017-08-09 04:30:48

标签: java dice

我想写一个程序,我掷两个骰子,直到我得到那些骰子的总和为11.我想记录多少"尝试"或者当我得到11的总和时使用的骰子。

到目前为止我的代码:

public class Dice {

    public static void main(String[] args) {

    int counter1 = 0; //Amount of rolls player 1 took to get sum of 9
    int P1sum = 0;

    do {
        int P1Die1 = (int)(Math.random()*6)+1;
        int P1Die2 = (int)(Math.random()*6)+1;  
        P1sum = (P1Die1 + P1Die2);
        counter1++;
    } while (P1sum == 11);

        System.out.println("Player 1 took "+counter1+" amount of rolls to have a sum of 11.");  
    }
}

它只是保持打印,需要1卷才能得到11的总和,所以有些事情是不对的。

我的目标:让玩家1继续滚动2直到我得到11的总和,并记录它花了多少尝试。然后让玩家2也这样做。然后哪个玩家尝试次数较少"胜利"游戏。

帮助表示感谢新手

2 个答案:

答案 0 :(得分:7)

您可能想要更新条件

while (P1sum == 11) // this results in false and exit anytime your sum is not 11

while (P1sum != 11) // this would execute the loop until your sum is 11

答案 1 :(得分:1)

请注意,Math.random()返回浮点数 0 <= x <= 1.0 Java API docs Math.random())。那么,公式的最大值:

(int)(Math.random()*6)+1;

等于7。