Cookie1997的小屋

什么都有

C#东软跨界精英题目答案

题目很简单,本来不想放的,但是想了想,就写吧。

用C#写一个控制台游戏:后台随机产生一个1-10的整数,然后用户输入一个整数,进行判断,如果相等则用户赢了;如果不相等,则提示用户输入的数字是过大还是过小,如果用户在输入5次内猜中,则胜利,否则,失败。一轮游戏结束后,要询问用户是否进入下一轮。

我写两个,第一个是面向过程的思维,第二个是面向对象的思维。

第一个:

            bool flag = true;
            while (flag)
            {     
                Console.WriteLine("请输入1-10:");
                Random R = new Random();
                int value = R.Next(1, 11);
                int theNum = 0, time = 0;
            
                while ( time <= 5 & int.TryParse(Console.ReadLine(), out theNum))
                {
                    time++;
                    if (theNum == value)
                    {
                        Console.WriteLine("对了,您为了达到胜利已经输入了{0}次。",time);
                        Console.WriteLine("请问你还想不想继续玩!想就按Y/y,不想就按其他按键。");
                        string str = Console.ReadLine();
                        if (str != "Y" && str != "y")
                        {
                            Console.WriteLine("游戏已经退出了!");
                            flag = false;
                        }
                        else
                        {
                            Console.WriteLine("\n\n新的一轮游戏已经开始了!");
                        }

                        break;
                    }
                    else if (theNum > value)
                    {
                        Console.WriteLine("大了");
                    }
                    else if (theNum < value)
                    {
                        Console.WriteLine("小了");
                    }

                    Console.WriteLine("你还有{0}次输入机会",5-time);
                    if(time == 5)
                    {
                        Console.WriteLine("次数已经达到上限,请问你还想不想继续玩!想就按Y/y,不想就按其他按键。");
                        string str = Console.ReadLine();
                        if (str != "Y" && str != "y")
                        {
                            Console.WriteLine("游戏已经退出了!");
                            flag = false;
                        }
                        else
                        {
                            Console.WriteLine("\n\n新的一轮游戏已经开始了!");
                        }
                    }
                }
            }

第二个:

        public static int time = 0;
        public static bool flag = true;
        public static int Num = 0;
        public static int Value = 0;
        public static bool IsOk()
        {
            

            if (Num == Value)
            {
                Console.WriteLine("猜中了。\n你总共输入了{0}次。", time);
                return true;
            }
            else if (Num > Value)
            {
                Console.WriteLine("猜大了。\n你还有{0}次输入机会。", 5 - time);
            }
            else if (Num < Value)
            {
                Console.WriteLine("猜小了。\n你还有{0}次输入机会。", 5 - time);
            }

            if (Program.time == 5)
            {
                Console.WriteLine("已经达到5次上限!失败!!");
                conti();
                return false;
            }

            return false;
        }

        public static void Initial()
        {
            Console.WriteLine("新的一轮已经开始!请输入1-10:");
            time = 0;
            Num = 0;
            Random r = new Random();
            Value =r.Next(1, 11);
        }

        public static void conti()
        {

            Initial();
            Console.WriteLine("请问是否继续?Y/y则继续,其他退出。");
            string str = Console.ReadLine();
            if(str == "Y" ||str == "y")
            {
                Initial();
            }
            else
            {
                Console.WriteLine("已经退出!");
                flag = false;
            }
        }

        static void Main(string[] args)
        {
            
            while(Program.flag)
            {
                Random R = new Random();
                Program.Value = R.Next(1, 11);
                Console.WriteLine("请输入1-10:");
                while(int.TryParse(Console.ReadLine(),out Program.Num) & Program.time <=5)
                {
                    time++;
                    if(IsOk())
                    {
                        conti();
                    }
                    else
                    {
                        continue;
                    }                    
                }

            }



            Console.ReadKey();
        }



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yesyes120/article/details/79951238
个人分类: C#
上一篇大小写字符之间变换的小技巧,速度更快
下一篇如何判断一个链表是否为空?
想对作者说点什么? 我来说一句

2017 华为软件精英挑战赛赛题

2017年04月03日 28KB 下载

没有更多推荐了,返回首页

关闭
关闭