class Program
{
//猜数字游戏
//具体的逻辑:
/*
* 你说 猜,然后,我开始猜,在1-200中间,每次你都会返回 包含或者不包含
* 如果猜中了 就说 猜中了。
* 三个条件
* 第一个,线性的 起始
* 第二个,线性的结束
* 第三 命中的数字
* 第三,要包含在 第一和第二之间。
* 第四,就是别人喊的数字
* 第四来的时候,有三种情况,一,直接命中,那就直接输出。二,在第三的左边那就把 第一拉到最左,三,在第三的右边那就把第三拉到右边。
* 直到 第一种情况发生。
* 所以,while 条件,while的是 IsHit
*/
private static int start = 1;
private static int end = 100;
private static int _needGuessNumber = 0;
static void Main(string[] args)
{
Console.WriteLine("开始猜数字游戏喽: 范围 1-100");
while (!GetNeedGuessNumber())
{
}
while (!GuessNumber())
{
}
Console.Write("恭喜你 猜到了! 喜提 500听崂山啤酒!!!");
Console.ReadLine();
}
public static bool GuessNumber()
{
Console.WriteLine("请输入你说的数字:");
if (int.TryParse(Console.ReadLine(), out var guessNumber))
{
if (guessNumber == _needGuessNumber)
{
return true;
}
else if (guessNumber > start && guessNumber < _needGuessNumber)
{
start = guessNumber;
}
else if (guessNumber < end && guessNumber > _needGuessNumber)
{
end = guessNumber;
}
else
{
Console.WriteLine($"哎呀呀,你这猜的都不在范围内呢,现在范围 {start} -> {end}");
}
}
Console.WriteLine("没有猜对呦,请再次输入数字哦!");
return false;
}
public static bool GetNeedGuessNumber()
{
Console.WriteLine("请输入需要猜中的数字:");
if (int.TryParse(Console.ReadLine(), out var guessNumber))
{
if (guessNumber >= start && guessNumber <= end)
{
_needGuessNumber = guessNumber;
return true;
}
else
{
Console.WriteLine("猜的数字不符合规定呦!");
}
}
else
{
Console.WriteLine("请输入数字哦!");
}
return false;
}
}
最后来个截图,看看效果。
勿以恶小而为之,勿以善小而不为。