自学C# 做的一个小游戏:数字猜谜世界 和他的屎山代码

年初立的FLAG嘛,要试着做游戏。

自学C#的时候,有一个练习题,跟着赵新政老师做完后,自己又拓展了1天的内容。

首先是随处可见的异界生物猫猫,不知道在别人的机器上是否能显示正常。

游戏玩法猜数字,增加了随着等级扩大的动态猜测范围,页面内容过多时自动刷新的功能,我尝试了几次,如果运气不太差应该能通关。

哦,还有3,6,9,15关的奇遇系统,会有一些好事发生。

找了个朋友帮我测试,修复了输入英文会退出的恶性BUG,其他好像没什么问题了,运行的还挺流畅。

应该问题不大,先发布了,欢迎大家来试一试,跟数独一样还挺有趣的。

现在再看代码,脑袋要宕机了,第一次体会了什么叫屎山代码的形成。

继续往下学吧还是。

链接: https://pan.baidu.com/s/1iJoVnZtiuwCdkKwgoWgnNA?pwd=1234 提取码: 1234 复制这段内容后打开百度网盘手机App,操作更方便哦

附上代码,已经乱了套了O    O

namespace randomGame
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("———————————————————————");
            Console.WriteLine("\" /\\_/\\\" ");
            Console.WriteLine("\"(=o.o=)\"  来自地球的人类,欢迎来到猜谜世界"); 
            Console.WriteLine("\" > ^ <\" ");
            Console.WriteLine("———————————————————————");
            Console.ReadKey();
            Console.WriteLine("邪恶的魔王将我们的世界从故乡剥离,做成了谜题"); Console.WriteLine(" ");
            Console.ReadKey();
            Console.WriteLine("唯有解开这个世界的 2 4 个谜题,才能让我们的世界回归"); Console.WriteLine(" ");
            Console.ReadKey();
            Console.WriteLine("这需要你强大的逻辑推理能力和一点点运气。"); Console.WriteLine(" ");
            Console.ReadKey();
            Console.WriteLine("那么,让我们开始游戏吧!");
            Console.ReadKey();
            Console.Clear();

            int lv = 0;
            int lownumber = 1; 
            int highnumber =20;
            Random random = new Random();
            bool game = true;
            int lucky = 0;
            int time = 6;
            while (game)
            {
                Console.WriteLine("———————————————————————");
                Console.WriteLine("\" /\\_/\\\" ");
                if (lv < 3){Console.WriteLine("\"( o.o )\"  欢迎{0}级菜鸟萌新来到残酷的猜谜世界!", lv );}
                else if (lv <= 6) {Console.WriteLine("\"(='.'=)\"  欢迎{0}级实力猜谜强者来到猜谜世界!", lv); }
                else if (lv <= 15){Console.WriteLine("\"(=o.o=)\"  强大的{0}级猜谜大神莅临于此,Respect!", lv);}
                else if (lv <= 22){Console.WriteLine("\"(=o.o=)\"  尊敬的{0}级猜谜强者抵达他忠实的猜谜世界", lv); }
                else if (lv <= 25){Console.WriteLine("\"(=o.o=)\"  猜谜世界即将被{0}级猜谜皇帝驯服", lv); }
                Console.WriteLine("\" > ^ <\" "); 
                Console.WriteLine("———————————————————————");
                highnumber = 20 + lv * 10;
                int number = random.Next(lownumber, highnumber);
                
                Console.WriteLine("请在{0}次内,猜一个{1}至{2}的随机数,回车键确认", time,lownumber, highnumber);
                int empty = 0;
                for (int i = 1; i <= time; i++)
                {
                    
                        empty++;
                   
                    Console.WriteLine("请输入你猜的数字:");

                    int gamerNmuber = 0;
                    bool isValidInput = false;

                    while (!isValidInput)
                    {
                        try
                        {
                            string input = Console.ReadLine();
                            gamerNmuber = Convert.ToInt32(input);
                            isValidInput = true; // 如果转换成功,设置为true退出循环
                        }
                        catch (FormatException)
                        {
                            // 捕获FormatException,提示用户输入的是无效的数字
                        }
                        catch (Exception ex)
                        {
                            // 捕获其他可能的异常
                            Console.WriteLine("发生未知错误:" + ex.Message);
                            break; // 退出循环,避免无限循环
                        }
                       break;
                    }
                    if (gamerNmuber == 88888888) { 
                        Console.WriteLine("开启作弊功能"); Console.WriteLine("  "); Console.WriteLine("  ");
                        Console.WriteLine("创世神在测试他的作品是否存在BUG");
                        Console.WriteLine("以游戏成功的结果跳过此关");
                        game = false;
                        break;
                    }else if (gamerNmuber == number)
                    {
                        Console.WriteLine("  ");
                        Console.WriteLine("恭喜你猜对了");
                        game = false;
                        break;
                    }
                    else if (gamerNmuber > highnumber)
                    {
                        Console.WriteLine("请按题目猜数,还有{0}次机会", time - i);
                    }
                    else if (gamerNmuber < lownumber)
                    {
                        Console.WriteLine("请按题目猜数,还有{0}次机会", time - i);
                    }
                    else if (gamerNmuber > number)
                    {
                        Console.WriteLine("猜大了,还有{0}次机会", time - i);
                    }
                    else if (gamerNmuber < number)
                    {
                        Console.WriteLine("猜小了,还有{0}次机会", time - i);
                    }
                    if (empty % 4 == 0)
                    {
                        Console.Clear();
                        Console.WriteLine("———————————————————————");
                        Console.WriteLine("\" /\\_/\\\" ");
                        if (lv < 3)
                        {
                            Console.WriteLine("\"( o.o )\"  欢迎{0}级菜鸟萌新来到残酷的猜谜世界!", lv);
                        }
                        else if (lv <= 6)
                        {
                            Console.WriteLine("\"(='.'=)\"  欢迎{0}级实力猜谜强者来到猜谜世界!", lv);
                        }
                        else if (lv <= 15)
                        {
                            Console.WriteLine("\"(=o.o=)\"  强大的{0}级猜谜大神莅临于此,Respect!", lv);
                        }
                        else if (lv <= 20)
                        {
                            Console.WriteLine("\"(=o.o=)\"  尊敬的{0}级猜谜强者抵达他忠实的猜谜世界", lv);
                        }
                        else if (lv <= 25)
                        {
                            Console.WriteLine("\"(=o.o=)\"  猜谜世界即将被{0}级猜谜皇帝驯服", lv);
                        }
                        Console.WriteLine("\" > ^ <\" ");
                        Console.WriteLine("———————————————————————");
                        Console.WriteLine("请在{0}次内,猜一个{1}至{2}的随机数,回车键确认", time, lownumber, highnumber);
                        Console.WriteLine(gamerNmuber);
                        if (gamerNmuber == number)
                        {
                            Console.WriteLine("恭喜你猜对了"); Console.WriteLine("  ");
                            game = false;
                            break;
                        }
                        else if (gamerNmuber > highnumber)
                        {
                            Console.WriteLine("请按题目猜数,还有{0}次机会", time - i);
                        }
                        else if (gamerNmuber < lownumber)
                        {
                            Console.WriteLine("请按题目猜数,还有{0}次机会", time - i);
                        }
                        else if (gamerNmuber > number)
                        {
                            Console.WriteLine("猜大了,还有{0}次机会", time - i);
                        }
                        else if (gamerNmuber < number)
                        {
                            Console.WriteLine("猜小了,还有{0}次机会", time - i);
                        }
                    }
                
                }
                if (game == true) {
                    Console.Clear();
                    Console.WriteLine("———————————————————————");
                    Console.WriteLine("\" /\\_/\\\" ");
                    if (lv < 6)
                    {
                        Console.WriteLine("\"( o.o )\"  在这里就倒下,也是令我没想到的");
                    }
                    else if (lv <= 15)
                    {
                        Console.WriteLine("\"(='.'=)\"  有时候运气也是实力的一部分");
                    }
                    else if (lv <= 18)
                    {
                        Console.WriteLine("\"(='.'=)\"  胜败乃兵家常事,请大佬重新过关");
                    }
                    else if (lv > 18)
                    {
                        Console.WriteLine("\"(=o.o=)\"  千年间,人们称颂着一位{0}级强者陨落于此", lv);
                    }
                    Console.WriteLine("\" > ^ <\" ");
                    Console.WriteLine("———————————————————————");
                    Console.WriteLine(" "); Console.WriteLine(" ");
                    Console.WriteLine("    /\\_/\\ ");
                    Console.WriteLine("  // o  o\\");
                    Console.WriteLine("     :  :    ");
                    Console.WriteLine(" "); Console.WriteLine(" ");
                    Console.WriteLine("失败了,谜底是:{0}", number);
                    Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" ");
                    Console.WriteLine(" ");
                    Console.WriteLine("**********************************");
                    Console.WriteLine("***-------任意键重新开始-------***");
                    Console.WriteLine("**********************************");
                    lv = 0;
                    lucky = 0;
                    time = 6;
                    lownumber = 1;
                    Console.ReadKey();
                    Console.Clear();

                    
                }
                else if(game == false) {
                   
                    Console.WriteLine("———————————————————————");
                    Console.WriteLine("按任意键进入下一关");
                    Console.ReadKey();
                    game = true;
                    lv++;
                    Console.Clear();


                    if (lv == 3)
                    {
                        
                        Console.WriteLine("———————————————————————");
                        switch (number % 2)
                        {
                            case 0:
                                Console.WriteLine(" "); Console.WriteLine("世界意志察觉到了你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("他决定稍微帮助你一下"); Console.WriteLine(" ");
                                Console.WriteLine("本轮猜谜回合数永久加一次"); Console.WriteLine(" ");
                                time = time + 1;
                                    break;
                            case 1:
                                Console.WriteLine(" ");
                                Console.WriteLine("世界意志忽视了你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("什么都没有发生"); Console.WriteLine(" "); 
                                Console.WriteLine("你决定用实力证明自己的强大"); Console.WriteLine(" ");
                                lucky = 1;
                                    break;
                        }
                                Console.WriteLine("———————————————————————");
                        Console.ReadKey();
                        Console.Clear();
                    }
                    else if (lv == 6)
                    {
                        Console.WriteLine("———————————————————————");
                        switch (number % 3)
                        {
                            case 0:
                                Console.WriteLine(" "); Console.WriteLine("世界意志察觉到了你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("他决定稍微帮助你一下"); Console.WriteLine(" ");
                                Console.WriteLine("本轮猜谜回合数永久加一次"); Console.WriteLine(" ");
                                time = time + 1;
                                break;
                            case 1:
                                Console.WriteLine(" "); Console.WriteLine("世界意志忽视了你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("什么都没有发生"); Console.WriteLine(" ");
                                Console.WriteLine("你决定用实力证明自己的强大"); Console.WriteLine(" ");
                                lucky = lucky+1 ;
                                break;
                            case 2:
                                Console.WriteLine(" "); Console.WriteLine("幸运女神察觉到你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("她为你献上了幸运的祝福"); Console.WriteLine(" ");
                                Console.WriteLine("本轮猜谜范围下限产生变化"); Console.WriteLine(" ");
                                lownumber = 30;
                                break;
                        }
                        Console.WriteLine("———————————————————————");
                        Console.ReadKey();
                        Console.Clear();
                    }
                    else if (lv == 10)
                    {
                        Console.WriteLine("———————————————————————");
                        switch (number % 3)
                        {
                            case 0:
                                Console.WriteLine(" "); Console.WriteLine("世界意志察觉到了你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("他决定稍微帮助你一下"); Console.WriteLine(" ");
                                Console.WriteLine("本轮猜谜回合数永久加一次"); Console.WriteLine(" ");
                                time = time + 1;
                                break;
                            case 1:
                                Console.WriteLine(" "); Console.WriteLine("世界意志忽视了你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("什么都没有发生"); Console.WriteLine(" ");
                                Console.WriteLine("你决定用实力证明自己的强大"); Console.WriteLine(" ");
                                lucky = lucky + 1;
                                break;
                            case 2:
                                Console.WriteLine(" "); Console.WriteLine("幸运女神察觉到你的存在"); Console.WriteLine(" ");
                                Console.WriteLine("她为你献上了幸运的祝福"); Console.WriteLine(" ");
                                Console.WriteLine("本轮猜谜范围下限产生变化"); Console.WriteLine(" ");
                                lownumber = lownumber + 30;
                                break;
                        }
                             Console.WriteLine("———————————————————————");
                        Console.ReadKey();
                        Console.Clear();
                    }
                    else if (lv == 15)
                    {
                        Console.WriteLine("———————————————————————");
                        if (lucky == 3) {
                            Console.WriteLine(" "); Console.WriteLine("你的实力(划掉)运气让世界意志大为震撼"); Console.WriteLine(" ");
                            Console.WriteLine("他决定全力帮助你"); Console.WriteLine(" ");
                            Console.WriteLine("本轮猜谜回合数永久加八次"); Console.WriteLine(" ");
                            time = time + 8;
                        }else if (lucky == 2)
                        {
                            Console.WriteLine(" "); Console.WriteLine("你的运气让世界意志感到震撼"); Console.WriteLine(" ");
                            Console.WriteLine("他决定好好帮助你"); Console.WriteLine(" ");
                            Console.WriteLine("本轮猜谜回合数永久加三次"); Console.WriteLine(" ");
                            time = time + 3;
                        }
                        else if (lucky == 1)
                        {
                            Console.WriteLine(" "); Console.WriteLine("世界意志察觉到了你的存在"); Console.WriteLine(" ");
                            Console.WriteLine("他决定稍微帮助你一下"); Console.WriteLine(" ");
                            Console.WriteLine("本轮猜谜回合数永久加一次"); Console.WriteLine(" ");
                            time = time + 1;
                        }else {
                            Console.WriteLine(" "); Console.WriteLine("幸运女神察觉到你的存在"); Console.WriteLine(" ");
                            Console.WriteLine("她为你献上了幸运的祝福"); Console.WriteLine(" ");
                            Console.WriteLine("本轮猜谜范围下限产生变化"); Console.WriteLine(" ");
                            lownumber = lownumber + 30;
                        }

                        Console.WriteLine("———————————————————————");
                        Console.ReadKey();
                        Console.Clear();
                    }
                    else if (lv == 25)
                    {
                        Console.WriteLine("———————————————————————"); Console.WriteLine(" "); Console.WriteLine(" ");
                        Console.WriteLine("您已经成功破解这个世界的全部谜题"); Console.WriteLine(" ");
                        Console.WriteLine("不朽的猜谜帝皇"); Console.WriteLine(" ");
                        Console.WriteLine("破碎虚空离开了这个简单的黑白世界"); Console.WriteLine(" ");
                        Console.WriteLine("在今后的百万年间"); Console.WriteLine(" ");
                        Console.WriteLine("此世界不断流传着您的伟大传说"); Console.WriteLine(" ");
                        Console.WriteLine("而不朽的您,依然在其他世界,破解着更加困难的谜题"); Console.WriteLine(" "); Console.WriteLine(" ");
                        Console.WriteLine("———————————————————————"); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" ");
                        Console.WriteLine("Have Fun"); 
                        Console.WriteLine("  ");
                        Console.WriteLine("Game made by 雪白的橘猫");
                        Console.WriteLine("2024/6/27");
                        game = false;
                    }

                }
            }
        }
}
}

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值