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