Случайное число в конструкторе 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. Есть идеи?
PS Эта тема была полезна, но не смог ответить на мой вопрос.
2 ответа
В методе 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);
}
}