Java 每次获得一个新的随机数[骰子模拟器]

Java 每次获得一个新的随机数[骰子模拟器],java,random,Java,Random,嘿,伙计们,我对Java很陌生,刚刚开始干预类。我目前正在尝试在我正在创建的一个基本游戏上模拟骰子。骰子似乎有效,但我只能有效地叫它一次,因为在那之后数字总是保持不变。有没有一个简单的解决办法,可以让我创造的骰子每次都与众不同 public class Dice { Random randomNum = new Random(); public int diceRoll() { int diceResult = 0; int result = randomNum.nex

嘿,伙计们,我对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;
  }
}
非常感谢您的帮助,谢谢

编辑:谢谢你们的反馈。事实证明,我的代码调用的是我在整数上使用的原始随机值,因为我没有在每次调用时将其值更改为新的数字


再次感谢你帮助我认识到这不是骰子课本身。谢谢!:)

尝试了您的代码,工作正常

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吗?你有没有试过在你的方法中像这样实例化随机对象

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#中,您肯定会得到更好的随机值。值得一试

谢谢各位的反馈。事实证明,我的代码调用的是我在整数上使用的原始随机值,因为我没有在每次调用时将其值更改为新的数字


再次感谢你帮助我认识到这不是骰子课本身。谢谢!:)

您显示的代码的可能重复项并不总是生成相同的数字,这可能在生成两个数字时比生成几个数字时发生得更频繁,部分原因是
nextInt
的范围无法再现您的问题。diceRoll函数的每次调用都与预期一样工作(返回一个从1到20的随机数)。是的,您所做的似乎是正确的,应该生成随机数。请提供一个示例。
public class Dice {


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