用的是国内非知名某chat app(非pro,每天限制几个提问)。
提问一:用C#语言编写一个猜数字的游戏, 每次从整数1到9中猜四个数字,不可重复。 每猜一次数字和顺序都对时,则打印一个“b”;每猜一次数字对但顺序不对则打印一个”w”。
具体它给出的回答如下:
//这是一个简单的猜数字游戏C#代码,要求猜测的数字不重复,每次猜测后,如果有数字和位置都正确,则打印一个 "b";如果有数字正确但是位置不对,则打印一个 "w",直到玩家猜出正确答案才结束游戏。 //```csharp using System; using System.Linq; class Program { static void Main(string[] args) { int[] answer = GenerateAnswer(); int[] guess = new int[4]; bool correct = false; while (!correct) { Console.Write("猜4个不同的数字(1~9),请以空格分隔:"); guess = Console.ReadLine().Split().Select(int.Parse).ToArray(); if (!CheckValidGuess(guess)) { Console.WriteLine("无效的猜测,请重新输入。"); continue; } string result = ""; int b = 0, w = 0; for (int i = 0; i < 4; i++) { if (answer[i] == guess[i]) b++; else if (answer.Contains(guess[i])) w++; } if (b == 4) { correct = true; result = "恭喜你,猜对了!"; } else { result = $"结果是 {b}b {w}w 。"; } Console.WriteLine(result); } Console.ReadKey(); } static int[] GenerateAnswer() { Random rnd = new Random(); int[] arr = new int[4]; for (int i = 0; i < 4; i++) { int num = rnd.Next(1, 10); while (arr.Contains(num)) { num = rnd.Next(1, 10); } arr[i] = num; } return arr; } static bool CheckValidGuess(int[] arr) { if (arr.Length != 4) return false; for (int i = 0; i < 4; i++) { if (arr[i] < 1 || arr[i] > 9) return false; for (int j = i + 1; j < 4; j++) { if (arr[i] == arr[j]) return false; } } return true; } } //``` //这个程序利用 Random 类随机生成答案,然后每次从控制台中读取玩家输入,利用 CheckValidGuess 函数验证输入是否合法, //若不合法则提示错误信息,重新读取输入;若合法,则通过遍历判断输入与答案中数字位置和数字是否相同,并输出结果,最后提示猜对的消息。View Code
运行后结果如下:
标签:arr,Console,数字,AI,++,已来,int,或许,return From: https://www.cnblogs.com/atkfc/p/17280996.html