在C#中实现一个简易的猜数字游戏,主要涉及到随机数生成、用户输入处理和基本的逻辑判断,以下是一个简单的示例代码,展示了如何实现这个游戏:
using System; namespace GuessNumberGame { class Program { static void Main(string[] args) { Random random = new Random(); int numberToGuess = random.Next(1, 101); // 生成1到100之间的随机数 int guess = 0; int attempts = 0; Console.WriteLine("欢迎来到猜数字游戏!"); Console.WriteLine("我已经想好了一个1到100之间的数字,你有10次机会来猜它。"); while (guess != numberToGuess && attempts < 10) { Console.Write("请输入你的猜测: "); while (!int.TryParse(Console.ReadLine(), out guess) || guess < 1 || guess > 100) { Console.WriteLine("请输入一个有效的数字(1-100)!"); } attempts++; if (guess < numberToGuess) { Console.WriteLine("太小了,再试一次!"); } else if (guess > numberToGuess) { Console.WriteLine("太大了,再试一次!"); } else { Console.WriteLine("恭喜你,猜对了!"); } } if (guess != numberToGuess) { Console.WriteLine("很遗憾,你没有在规定的次数内猜对,正确答案是: " + numberToGuess); } } } }
1、命名空间和类:使用System
命名空间中的Random
类来生成随机数,定义一个名为GuessNumberGame
的命名空间和一个包含Main
方法的Program
类。
2、随机数生成:创建一个Random
对象,并使用它的Next
方法生成一个1到100之间的随机整数作为要猜的数字。
3、用户输入和逻辑判断:通过循环让用户输入猜测的数字,并检查输入是否有效(即是否为1到100之间的整数),然后根据用户的猜测与实际数字进行比较,给出相应的提示信息,如果用户在规定的次数内猜对了数字,则输出恭喜信息;否则,输出正确的答案。
4、尝试次数限制:设置一个尝试次数变量attempts
,初始值为0,每次用户猜测后递增1,当尝试次数达到10次时,循环结束,输出正确答案。
以下是程序可能的运行结果示例:
欢迎来到猜数字游戏! 我已经想好了一个1到100之间的数字,你有10次机会来猜它。 请输入你的猜测: 50 太大了,再试一次! 请输入你的猜测: 25 太小了,再试一次! ... 恭喜你,猜对了!
或者
欢迎来到猜数字游戏! 我已经想好了一个1到100之间的数字,你有10次机会来猜它。 请输入你的猜测: 75 太大了,再试一次! 请输入你的猜测: 50 太小了,再试一次! ... 很遗憾,你没有在规定的次数内猜对,正确答案是: 68
问题1:如何修改游戏的难度,比如增加或减少可猜数字的范围?
解答:可以通过修改random.Next
方法的参数来调整可猜数字的范围,如果想将范围改为1到200,可以将random.Next(1, 101)
改为random.Next(1, 201)
,也需要相应地调整用户输入的验证逻辑,确保输入的数字在新的范围内。
问题2:如何记录用户的猜测历史并在游戏结束后显示?
解答:可以使用一个列表来存储用户的每一次猜测,在每次用户输入猜测后,将该猜测添加到列表中,游戏结束后,遍历该列表并显示所有的猜测历史,在代码中添加以下部分:
List<int> guessHistory = new List<int>(); // 在用户输入猜测后添加这行代码 guessHistory.Add(guess); // 在游戏结束后添加以下代码来显示猜测历史 Console.WriteLine("你的猜测历史是: " + string.Join(", ", guessHistory));