gpt4 book ai didi

java - 基本的随机掷骰子 Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:52 27 4
gpt4 key购买 nike

我正在尝试编写一个方法 rollDice(int number, int nSides),该方法返回掷有 nSides 面的数字骰子的总结果。

因此,例如 rollDice(3, 6) 应该返回滚动 3 个六面骰子的结果(添加到 3 到 18 之间的数字)。

当我为 int number 键入 1 时,下面的方法返回负数 我需要做什么来解决这个问题?

public static  int rollDice(int number, int nSides) {
int num = 0;
if(nSides >=3)
{
for(int i = 0; i < number; i++){
Random r = new Random();
int roll = r.nextInt();
num = num + (roll % nSides)+1;

}
}
else{
System.out.println("Error num needs to be from 3");

}
return num;
}

最佳答案

Random.nextInt() 具有不可预测的行为 - 它可以生成整数的所有可能值,包括负数。请改用 Random.nextInt(numSides) - 它将从 [0,numSides) 返回一个整数,即包括 0 并排除 numSides。要获得所需的功能 [1,numSides],请使用

r.nextInt(numSides)+1;

参见 here获取更多信息。

关于java - 基本的随机掷骰子 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12860398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com