想起来现在基础的已经学了不少了,那么这次试一下用while写一个数字猜谜的。
Random roll = new Random(); //建立一个骰子 int rollNum = roll.Next(1, 101); //让骰子在1-100内随机一个数 int num = 0; //记录用户的数字 int count = 0; //记录猜数字次数 bool input; //判断输入是否正确 Console.WriteLine("请玩家输入一个1-100的数字来进行猜谜"); while (true) { input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > 100 || num < 0) { Console.Clear(); Console.WriteLine("输入错误!请玩家输入一个1-100的数字"); Console.ReadKey(true); } else { break; } } while (true) { while (count < 5) { count++; if (num == rollNum) { Console.WriteLine("真厉害,居然第{0}次就猜中了",count); break; } else if (num > rollNum) { Console.WriteLine("你输入的{0}数字大了", num); Console.WriteLine("请继续输入一个数字进行猜数"); while (true) { input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > 100 || num < 0) { Console.WriteLine("输入错误!请玩家输入一个1-100的数字"); Console.ReadKey(true); } else { break; } } } else { Console.WriteLine("你输入的{0}数字小了", num); Console.WriteLine("请继续输入一个数字进行猜数"); while (true) { input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > 100 || num < 0) { Console.WriteLine("输入错误!请玩家输入一个1-100的数字"); Console.ReadKey(true); } else { break; } } } } while(count < 10) { count++; if (count == 10) { break; } if (num == rollNum) { Console.WriteLine("还不错,第{0}次猜中了", count); break; } else if (num > rollNum) { Console.WriteLine("你输入的{0}数字大了", num); Console.WriteLine("请继续输入一个数字进行猜数"); while (true) { input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > 100 || num < 0) { Console.WriteLine("输入错误!请玩家输入一个1-100的数字"); Console.ReadKey(true); } else { break; } } } else { Console.WriteLine("你输入的{0}数字小了", num); Console.WriteLine("请继续输入一个数字进行猜数"); while (true) { input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > 100 || num < 0) { Console.WriteLine("输入错误!请玩家输入一个1-100的数字"); Console.ReadKey(true); } else { break; } } } } if (count !=10 && num == rollNum) { break; } else if (count == 10 && num == rollNum) { Console.WriteLine("海底捞月,厉害!"); } else { Console.WriteLine("抱歉,你没猜中,正确的数字是"+rollNum); break; } } Console.ReadKey(true);
写的途中调试了很多次。。。也发现一些麻烦的东西,比如每次用户输入我都要判断用户输入的正确性,以后应该可能会学到简单的方法,我觉得应该有那种,写过判断用户输入命令的代码后,可以用一句话调用此代码,而不是我这样长篇复制。。。。反正好不容易自己写成功了,虽然看着很麻烦,不过都是顺着思路走的,应该比较容易看懂。