-7

我是一名学生,正在学习与游戏开发一致的入门编程课程。我的一项任务要求我在构造函数中定义玩家的攻击伤害。我希望损坏是随机的,但无论我做什么,我都会得到相同的数字。这是我做的一个测试,看看我怎样才能让这个数字是随机的。

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

PS这个帖子很有用,但无法回答我的问题。

4

2 回答 2

2

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

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

现在你会得到一个 0 到 11 之间的随机数,并且不在10控制台中

于 2016-03-30T02:24:37.970 回答
0

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

public int Atk;
public static int max = 100;

public void h()
{
    while (Atk != 10)
    {
        this. Atk = random.Next(max);
        Console.WriteLine(Atk);
    }
}
于 2016-03-30T03:20:54.580 回答