Java 有条件的挑战

Java 有条件的挑战,java,user-interface,netbeans,dice,Java,User Interface,Netbeans,Dice,您好,我是Java新手,这是我必须做的: 我必须做一个得分游戏,我不会发布整个事情,因为它是无关的。有两个面,一个有6个面,另一个有9个面。这就是我的问题所在: 如果您在一轮中掷双6至少5次,将发生以下情况: 掷骰子的次数是随机的(10到30次之间) 所有这些骰子卷的累积积被添加到银行中 我真的不明白这里的措辞,除了这一部分,我已经完成了整个程序。这就是我所做的: if (ninedice == 6 && sixdice == 6 >= 5){ ninedice

您好,我是Java新手,这是我必须做的: 我必须做一个得分游戏,我不会发布整个事情,因为它是无关的。有两个面,一个有6个面,另一个有9个面。这就是我的问题所在:

如果您在一轮中掷双6至少5次,将发生以下情况:

  • 掷骰子的次数是随机的(10到30次之间)

  • 所有这些骰子卷的累积积被添加到银行中

我真的不明白这里的措辞,除了这一部分,我已经完成了整个程序。这就是我所做的:

if (ninedice == 6 && sixdice == 6 >= 5){
    ninedice = (int) Math.ceil(Math.random () * (30-10)+ 10);
    sixdice = (int) Math.ceil(Math.random () * (30-10)+10);
    accountpoints = ninedice+sixdice;
}

这显然是不正确的,我没有得到预期的结果,因为它只是没有滚动模具的随机次数,也没有在帐户中添加点。非常感谢您的帮助,并提前向您表示感谢

您想要更像这样的东西:

rollDice();

if (nineDice == 6 && sixDice == 6)
{
  myDiceCondition++;
}

if (myDiceCondition >= 5)
{
  // get random number between 10 and 30
  // loop for that amount
    // roll both dice
    // add to account balance?
}

if语句的计算结果为:(true/false&&true/false>=5)。您需要将5与整数进行比较。您是否记录了双6的滚动次数?像这样的方法应该会奏效:

public static void diceExample(){

    int ninedice, sixdice, accountpoints, rolledDoubleSix;

    if (ninedice == 6 && sixdice == 6) {
        rolledDoubleSix++;
    }

    if (rolledDoubleSix == 5){
        ninedice=(int)Math.ceil(Math.random () * (30-10)+ 10);
        sixdice=(int)Math.ceil(Math.random () * (30-10)+10);
        accountpoints = ninedice+sixdice;

    }
}

所以你走对了路,但还没走到那一步。if语句条件应该是
if(ninedice==6&&sixdice==6)
。不需要
>=5
部件。该if语句表示每个模具的第一个辊是否在6中重新使用。但是,if语句体存在一些逻辑问题。 这套代码

ninedice = (int) Math.ceil(Math.random () * (30-10)+ 10);
sixdice = (int) Math.ceil(Math.random () * (30-10)+10);
生成两个模具再次滚动的次数。但是,
ninedice
sixdice
代表第一个骰子,所以不要覆盖它们。换成,

int ninedicerolls = (int) Math.ceil(Math.random () * (30-10)+ 10);
int sixdicerolls = (int) Math.ceil(Math.random () * (30-10)+10);
现在保留一个产品变量,以跟踪每个模具的每个辊

int ninediceproduct = ninedice;
int sixdiceproduct = sixdice;
while(ninediceproduct > 0){
    ninediceproduct *= (int) Math.ceil(Math.random () * (9-1)+ 1);
    ninediceproduct--;
}
while(sixdiceproduct > 0){
    sixdiceproduct *= (int) Math.ceil(Math.random () * (6-1)+ 1);
    sixdiceproduct--;
}
然后,将乘积相乘

int cumulative = sixdiceproduct * ninediceproduct;

你了解循环了吗?有一点,但不是高级循环。当它要求所有卷的产品时,是否包括双六?它没有具体说明,但我明白,我的回答是否解决了你的问题?没问题。快乐编码!