首先,对这个简单的问题感到抱歉,但由于我刚刚开始编码,因此无法独自处理。
我编写了这个小游戏。如果用户按下y
键,我需要重新启动它。
我的问题是我想出了恢复生命,仪表和积分的方法,但是我无法固定随机数(我们需要找到随机数才能赢):它没有改变。
希望我的描述足够清楚:
static void Main(string[] args)
{
int QuestionNumber = (new Random()).Next(1, 10);
int life = 5;
int meter = 0;
int number;
int points = 100;
char selection = 'y';
while (selection == 'y')
{
life = 5;
meter = 0;
points = 100;
while (life > 0)
{
meter++;
Console.Write("Enter a number: ");
number = Convert.ToInt32(Console.ReadLine());
if (number == QuestionNumber)
{
Console.WriteLine($"Congrats! You found the number at {meter}th and got {points} points!");
break;
}
life--;
points = points - 20;
if (life == 0)
{
Console.WriteLine("Game over!");
}
else
{
if (number > QuestionNumber)
{
Console.WriteLine("Down");
}
else
{
Console.WriteLine("Up");
}
}
}
Console.Write("Do you want to countinue?(y/n)");
selection = Convert.ToChar(Console.ReadLine());
}
Console.ReadKey();
}
答案 0 :(得分:4)
更改此:
while (selection == 'y')
{
life = 5;
meter = 0;
为此,相反:
while (selection == 'y')
{
QuestionNumber = (new Random()).Next(1, 10);
life = 5;
meter = 0;
通过这种方式,QuestionNumber
就像从头开始实例化一样被重置。
答案 1 :(得分:2)
这是因为QuestionNumber在程序中只分配了一次值。为了更改QuestionNumber,您需要在while循环内为其分配一个新的随机值。