我正在尝试编写一个rollDice(int number,int nSides)方法,该方法返回滚动带有nSides边的数字骰子的总结果。
因此,例如rollDice(3,6)应该返回滚动3个六边骰子的结果(加上3到18之间的数字)。
当我输入1 int number
来解决此问题时,下面的方法返回负数?
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 r
和int roll
各一次,所以我已经从循环中去除它们。nextInt(int)方法选择一个从0到0(但不包括int)的整数。这被称为0(包含)至int(不含),因此您必须添加1才能调整模具范围。您似乎已经知道,尽管我不知道您为什么使用%。使用*进行乘法运算将为您提供所有骰子相同的数字,我不相信您打算这样做。这是您的课程的一种可能的实现:
import java.util.Random;
public class Dice {
public static int rollDice(int number, int nSides)
{
int num = 0;
int roll = 0;
Random r = new Random();
if(nSides >=3)
{
for(int i = 0; i < number; i++)
{
roll = r.nextInt(nSides)+1;
System.out.println("Roll is: "+roll);
num = num + roll;
}
}
else
{
System.out.println("Error num needs to be from 3");
}
return num;
}
public static void main(String[] args)
{
System.out.println("Total is: "+rollDice(3, 6));
}
}
/*
Roll is: 4
Roll is: 1
Roll is: 2
Total is: 7
*/
我试图编写一个方法rollDice(int number,int nSides),它返回用nSides边滚动数字骰子的总结果。
一个简单的新手问题,奇怪的是我一直没能找到解决方法。
我对编程有点陌生,我想知道如何编写一个随机掷骰子的java程序。这方面的要求是: 私有成员: -final int numSides ^^die的边数 -public方法 ^^骰子(int sides) @@@将numSides设置为sides参数。 @@@用于创建具有不同边数的骰子,例如,在main中可以说骰子d6=新骰子(6)以创建六边die。 ^^int roll() ^^返回一个从1到包括
我对C#和一般编码都是新手。为了提高我的技能,我试图创建一个基本的游戏,两个玩家掷骰子,并记录他们的得分。玩家达到20分即获胜。每个玩家轮流掷一个骰子,把他们的第一个骰子加到他们的第二个骰子上,以此类推,直到其中一个达到20。如果玩家掷出一个六,他们可以再次掷骰子。 任何帮助都将不胜感激。
我正试图用python做一个掷骰子程序,给定用户在边、骰子和掷骰子上的输入来掷骰子。目前这段代码或多或少是有效的,但是我遇到的问题是,假设我让< code>3个骰子滚动< code>3次,骰子有< code>6个面。 我的代码显示如下: 当我需要它显示为: 这是我目前为止的代码。我的猜测是,它与我的参数和参数为空有关?我不完全确定。以下是我的代码:
我在试着给游戏Farkle编程序。它一次最多可以掷出6个骰子。我创建了一个骰子类来保存骰子的值,并创建了一个Roll()方法来滚动骰子。 游戏将创建一个由6个骰子组成的数组,并一次掷出它们,所以我不希望Die类在类的每个实例中创建一个 Random(),否则所有骰子都会具有相同的种子随机数。所以我在应用程序的主窗体中创建了新的随机()。 我对从Die类中调用Random()而不公开应该是私有的东西