我如何制作一个随机生成数字1-6的“骰子”每次使用它?

时间:2011-12-07 04:37:56

标签: java class methods random

现在我正在使用

 int die = (int)(6.0 * Math.random()) + 1;

这对我想要创建的循环不起作用。这是我正在使用的方法。

public void computerRoll()
{ 

 do { roll();
      System.out.println("Roll:"+ die);
      computerScore += die;
     } while (computerScore <= 20 && die >=2 && die <=6 );
     if (computerScore >=20)
        computerHold();

     if (die == 1)
        switchTurn();

 }

roll()方法只是简单地包含前一行代码,“int die =(int)(6.0 * Math.random())+ 1;”我试过移动它甚至为它做一个占位符但是如果我执行方法并且数字不是1,它只打印那个数字直到它达到20。 我正在尝试创建一个“骰子”,每次使用时都会生成一个新号码。

1 个答案:

答案 0 :(得分:4)

看起来你的roll-method不是作为一个函数处理的。您需要返回roll()函数生成的值。

试试这个:

int roll() {
    return (int)(6.0 * Math.random()) + 1;
}

然后:

public void computerRoll() { 

    do { 
        int die = roll();
        System.out.println("Roll:"+ die);
        computerScore += die;
     } while (computerScore <= 20 && die >=2 && die <=6 );
     if (computerScore >=20)
         computerHold();

     if (die == 1)
         switchTurn();

 }