构造函数 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 之间的随机数。 有什么想法吗?

附言这个线程很有用,但无法回答我的问题。

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

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

现在,您将获得一个介于 0 和 11 之间的随机数,并且不会在控制台中10

如果要继续使用随机数,直到它生成中断条件或数字,则可以将 h(( func 修改为:

public int Atk;
public static int max = 100;
public void h()
{
    while (Atk != 10)
    {
        this. Atk = random.Next(max);
        Console.WriteLine(Atk);
    }
}

最新更新