嘿,伙计们,我对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;
}
}
稍微感谢任何帮助,谢谢
编辑:感谢您的反馈。结果我的代码调用了我在整数上使用的原始随机值,因为我每次调用它时都没有将其值更改为新数字。
再次感谢您帮助我意识到这不是骰子类本身。欣赏它! :)
答案 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)
感谢您的反馈。结果我的代码调用了我在整数上使用的原始随机值,因为我每次调用它时都没有将其值更改为新数字。
再次感谢您帮助我意识到这不是骰子类本身。欣赏它! :)