构造函数中的随机数c#

时间:2016-03-30 02:19:02

标签: c# random constructor class-constructors

我是一名学生,参加游戏开发的入门编程课程。我的一个任务要求我在构造函数中定义玩家攻击伤害。我希望伤害是随机的,但无论我做什么,我都会得到相同的数字。这是我做的一个测试,看看如何让这个数字随机。

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很有用,但无法回答我的问题。

2 个答案:

答案 0 :(得分:2)

在方法h()中,如果whileatk!=10形成无限循环。所以你需要在那里指定一个退出条件来打破循环;你可以像这样使用:

public void h()
{
    while (Atk != 10)
    {
        this.Atk = random.Next(11);                   
    }
    Console.WriteLine(Atk);
}

现在,您将获得0到11之间的随机数,而不是控制台中的10

答案 1 :(得分:0)

如果你想继续使用随机数,直到它产生一个破坏条件或数字,你可以将h()func修改为:

OAUTH_ERROR