C#骰子滚轮无法使用特定的数字执行
我尝试运行以下代码来制作一个骰子滚轮,它可以返回具有特定面数的骰子面的正确当前值,这样,如果我输入的面数小于3,构造函数将返回默认面数和默认面数。否则,骰子将根据给定的数字滚动。但是,当我尝试输入小于3的数字时,面数根本不会返回默认值。我该怎么做才能修好它C#骰子滚轮无法使用特定的数字执行,c#,constructor,C#,Constructor,我尝试运行以下代码来制作一个骰子滚轮,它可以返回具有特定面数的骰子面的正确当前值,这样,如果我输入的面数小于3,构造函数将返回默认面数和默认面数。否则,骰子将根据给定的数字滚动。但是,当我尝试输入小于3的数字时,面数根本不会返回默认值。我该怎么做才能修好它 public class Die { // Implement your 'Die' class here private int numFaces; private int faceValue; Rando
public class Die
{
// Implement your 'Die' class here
private int numFaces;
private int faceValue;
Random rand = new Random();
// Default Constructor
public Die()
{
numFaces = 6;
faceValue = 1;
}
// Random Constructor
public Die(int faces)
{
if (faces >=3)
{
numFaces = faces;
RollDie();
GetNumFaces();
faceValue = GetFaceValue();
}
else
{
numFaces = 6;
faceValue = 1;
}
}
// Rolls the die
public void RollDie()
{
faceValue = rand.Next(numFaces) + 1;
}
// Get the vlaue of current face
public int GetFaceValue()
{
return faceValue;
}
// Get the number of face
public int GetNumFaces()
{
return numFaces;
}
}
// end Class Die
public class Program
{
public static void Main()
{
Die myDie = new Die(10);
}
}
}以下内容对我很有用:
public class Die
{
private System.Random rand;
private int faceValue, numFaces;
public int GetFaceValue()
{
return faceValue;
}
public int GetNumFaces()
{
return numFaces;
}
public void Roll()
{
faceValue = rand.Next(1, numFaces + 1);
}
public Die()
{
rand = new System.Random();
faceValue = 1;
numFaces = 6;
}
public Die(int faces) : this()
{
if (faces >= 3) numFaces = faces;
}
}
public static class Program
{
public static void Main()
{
Die d1 = new Die(10);
Die d2 = new Die(2);
System.Console.WriteLine("D1: {0} faces; value: {1}",
d1.GetNumFaces(),
d1.GetFaceValue());
System.Console.WriteLine("D2: {0} faces; value: {1}",
d2.GetNumFaces(),
d2.GetFaceValue());
}
}
编辑:我想你正在做这个();由于初始化时它不会要求滚动骰子,因此我编辑了代码以反映这一点。“面数根本不会返回默认值”,那么它会返回什么?这里有一个提示:请不要在构造函数中调用RollDie()。构造函数应该初始化对象。您现在编写类的方式可能应该将其命名为
DieRoll
,并将该方法命名为RollDie
private
。不要使用GetFaceValue()
而是让RollDie
返回一个int
并使用它生成模具辊。显然,这是家庭作业,因此可能会要求您以这种特定的方式设置该类,但希望您能够更改此设置。您应该将的实例设置为随机的静态的
,以便在使用两个或更多骰子时避免出现错误。