构造函数中的随机数c#
random number in constructor c#
我是一名学生,正在学习游戏开发入门编程课程。我的一项任务要求我在构造函数中定义玩家攻击伤害。我希望损坏是随机的,但无论我做什么,我都会得到相同的数字。这是我做的一个测试,看看如何让这个数字随机。
class MainChar
{
public static Random random = new Random();
public int Atk;
public MainChar()
{
this.Atk = random.Next(11);
}
public void h()
{
while (Atk != 10)
{
Console.WriteLine(Atk);
}
}
}
我正在我的主程序中创建 MainChar 的新实例,并且 运行 h()。我得到一个相同数字的重复列表,而不是 1 到 10 之间的随机数字。有什么想法吗?
P.S。 This thread 很有用,但无法回答我的问题。
在方法h()
中,while
如果atk!=10
形成死循环。所以你需要在那里指定一个退出条件来打破循环;你可以这样使用:
public void h()
{
while (Atk != 10)
{
this.Atk = random.Next(11);
}
Console.WriteLine(Atk);
}
现在您将得到一个介于 0 和 11 之间的随机数,而不是 10
在控制台中
如果你想继续随机数直到它产生中断条件或数字,你可以将 h() 函数修改为:
public int Atk;
public static int max = 100;
public void h()
{
while (Atk != 10)
{
this. Atk = random.Next(max);
Console.WriteLine(Atk);
}
}
我是一名学生,正在学习游戏开发入门编程课程。我的一项任务要求我在构造函数中定义玩家攻击伤害。我希望损坏是随机的,但无论我做什么,我都会得到相同的数字。这是我做的一个测试,看看如何让这个数字随机。
class MainChar
{
public static Random random = new Random();
public int Atk;
public MainChar()
{
this.Atk = random.Next(11);
}
public void h()
{
while (Atk != 10)
{
Console.WriteLine(Atk);
}
}
}
我正在我的主程序中创建 MainChar 的新实例,并且 运行 h()。我得到一个相同数字的重复列表,而不是 1 到 10 之间的随机数字。有什么想法吗?
P.S。 This thread 很有用,但无法回答我的问题。
在方法h()
中,while
如果atk!=10
形成死循环。所以你需要在那里指定一个退出条件来打破循环;你可以这样使用:
public void h()
{
while (Atk != 10)
{
this.Atk = random.Next(11);
}
Console.WriteLine(Atk);
}
现在您将得到一个介于 0 和 11 之间的随机数,而不是 10
在控制台中
如果你想继续随机数直到它产生中断条件或数字,你可以将 h() 函数修改为:
public int Atk;
public static int max = 100;
public void h()
{
while (Atk != 10)
{
this. Atk = random.Next(max);
Console.WriteLine(Atk);
}
}