滚动骰子特定次数Java

时间:2016-12-15 22:46:13

标签: java netbeans dice

我是Java的新手,这就是我必须要做的事情:

如果玩家在1轮中2次骰子获得双六次,则选择10到30之间的随机数。例如,如果该数字为20,则另外两个骰子应滚动二十次,然后将这两个数字相乘并得到累积乘积。

这只是大项目的一小部分,这是我到目前为止所做的:

if (ninedice == 6 && sixdice == 6) {
    rolledDoubleSix++;
    if (rolledDoubleSix == 5) {
        dicerolls = (int) Math.ceil(Math.random() * (30 - 10 + 1) + 10);
        int ninediceproduct = dicerolls;
        int sixdiceproduct = dicerolls;
        if (ninediceproduct > 0) {
            ninediceproduct=(int)Math.ceil(Math.random() * 9);
        }
        if (sixdiceproduct > 0) {
            sixdiceproduct = dicerolls * (int) Math.ceil(Math.random() * 6);
        }
        int cumulativetotal = 0;
        int cumulative = sixdiceproduct * ninediceproduct;
        cumulativetotal = cumulativetotal + cumulative;
        accountpoints = accountpoints + cumulativetotal;
        accountptsoutput.setText("" + accountpoints);

我遇到的问题是我不知道如何使两个骰子滚动特定次数。如果10到30之间的随机数是18,那么如何将这些骰子翻滚18次?

2 个答案:

答案 0 :(得分:0)

像其他人所说的那样使用for循环。

另一种方法就是拥有多个变量。也可以使用java.util.Random(以及随后的r.nextInt(seed)+ 1方法)而不是Math.random。

我将如何做到这一点

Random r = new Random();
int firstSpin = r.nextInt(6) + 1; //+1 so result cannot be zero
int secondSpin = r.nextInt(6) + 1;
//more spins if needed
if(firstSpin == 6 && secondSpin == 6) {
//do something
}

答案 1 :(得分:-1)

嗯,我认为你所寻找的是一个循环。

这是一个基本的例子: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

用于重复代码。