自己从0开始学习Unity的笔记 IV (C#循环练习-数字猜谜游戏)

想起来现在基础的已经学了不少了,那么这次试一下用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);

写的途中调试了很多次。。。也发现一些麻烦的东西,比如每次用户输入我都要判断用户输入的正确性,以后应该可能会学到简单的方法,我觉得应该有那种,写过判断用户输入命令的代码后,可以用一句话调用此代码,而不是我这样长篇复制。。。。反正好不容易自己写成功了,虽然看着很麻烦,不过都是顺着思路走的,应该比较容易看懂。

posted @ 2019-03-11 17:11  小鳥遊ミナミ  阅读(481)  评论(0编辑  收藏  举报