每次[骰子模拟器]

时间:2017-11-10 09:55:13

标签: java random

嘿,伙计们,我对Java很陌生,刚刚开始干预课程。我目前正试图在我正在制作的基本游戏上模拟骰子。骰子似乎有效,但我只能有效地调用一次,因为之后数字总是保持不变。有没有一个简单的解决方案,我每次打电话时都会产生差异?

public class Dice {
  Random randomNum = new Random();

  public int diceRoll() {
    int diceResult = 0;
    int result = randomNum.nextInt(20) + 1;
    diceResult = diceResult + result;
    return diceResult;
  }
}

稍微感谢任何帮助,谢谢

编辑:感谢您的反馈。结果我的代码调用了我在整数上使用的原始随机值,因为我每次调用它时都没有将其值更改为新数字。

再次感谢您帮助我意识到这不是骰子类本身。欣赏它! :)

3 个答案:

答案 0 :(得分:0)

尝试了你的代码,工作正常。

import java.util.Random;
    public class Main {
        Random randomNum = new Random();
        public static void main(String[] args) throws Exception {
            Main main = new Main();
            for (int i =0; i<20; i++) {
                System.out.println(main.diceRoll());
            }
        }

        public int diceRoll()
        {
            int diceResult = 0;
            int result = randomNum.nextInt(20) + 1;
            diceResult = diceResult + result;
            return diceResult;
        }
    }

O / P

8
5
3
15
2
15
16
11
9
11
2
7
14
3
3
16
5
11
18
13

请你分享你的O / P

答案 1 :(得分:0)

您是否尝试在方法中实例化Random对象?

public class Dice {


  public int diceRoll() {
    Random randomNum = new Random();
    int diceResult = 0;
    int result = randomNum.nextInt(20) + 1;
    diceResult = diceResult + result;
    return diceResult;
  }
}

Random类是伪随机的,它是在实例化时的日期播种的。你肯定会在C#中获得更好的随机值。值得一试。

答案 2 :(得分:0)

感谢您的反馈。结果我的代码调用了我在整数上使用的原始随机值,因为我每次调用它时都没有将其值更改为新数字。

再次感谢您帮助我意识到这不是骰子类本身。欣赏它! :)