c# - 尝试在 C# 中重试后随机生成答案
问题描述
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
int num1 = int.Parse(args[0]);
int num2 = int.Parse(args[1]);
bool GameOver = false;
int turn = 3;
Random random = new Random();
int answer = random.Next(num1, num2);
// string input = "";
Console.WriteLine("Hello, welcome to the guess a number challenge");
while (!GameOver)
{
if (turn != 0)
{
turn--;
Console.WriteLine($"Please Select number between {num1} to {num2}:");
int SelectedNumber = int.Parse(Console.ReadLine());
if (SelectedNumber < answer && SelectedNumber >= num1)
{
System.Console.WriteLine("Almost there, just the number is too small\n");
} else if (SelectedNumber > answer && SelectedNumber <= num2)
{
System.Console.WriteLine("Your number is too big\n");
} else if(SelectedNumber == answer)
{
System.Console.WriteLine("CONGRATULATIONS!!!! You guess it right\n");
GameOver = true;
retry();
} else
{
System.Console.WriteLine("Your number is out of range\n");
}
} else
{
System.Console.WriteLine($"GAME OVER!!!! The answer is {answer}");
GameOver = true;
retry();
}
void retry() {
System.Console.WriteLine("Would you like to retry? Y/N");
string input = Console.ReadLine();
string ConsoleInput = input.ToLower();
if(ConsoleInput == "y")
{
GameOver = false;
turn = 3;
} else if(ConsoleInput == "n")
{
GameOver = true;
} else
{
Console.WriteLine("Invalid input");
retry();
}
}
}
}
}
}
大家好,只是想问一个问题。我尝试在终端中构建“猜数字”游戏,玩家必须根据给定的数字范围猜测数字。我试图让答案随机生成,因此是 Random 类。重试后答案将随机化。问题是,每次重试后,答案还是一样。我不确定我在哪里做错了。感谢您的帮助,对于菜鸟问题感到抱歉。
解决方案
您需要一个外部循环才能在结束后开始新游戏:
请参阅下面具有必要控制流的框架程序。
class Program
{
static void Main(string[] args)
{
bool retry = false;
do
{
// start of game
bool gameOver = false;
int turn = 3;
do
{
// game here
// set gameOver when guess is corrent
turn--;
} while (turn>0 && !gameOver);
// post game scores
// ask to retry
} while (retry);
// end here
}
}
推荐阅读
- php - 数据库输入失败
- android-studio - Android Studio kvm权限被拒绝
- jenkins - 詹金斯在工作后删除目录
- wordpress - 创建表查询返回插件在激活时生成了 X 个字符的意外输出
- mysql - 突然我的应用程序无法连接到我的 Maria 实例
- eclipse - 我在 vdm sl 项目中有两个错误,1) 操作 =
; 2)时间::小时:nat; - azure-active-directory - 无法在 MS Graph 中展开新创建的 Open Extension
- angular - 如何在 Angular 中从 Promise 中获取数据
- camera - 如何为在树莓派上工作的物体检测系统选择摄像头或摄像头传感器?
- python - 如何减少python程序的时间?