分享一些飞行棋小项目的方法

代码是看视频之前自己写的,所以有很多地方和老师不太一样。
投色子的时候可以让循环体中就一个玩家,通过对变量i(循环次数)的操作完成对玩家的选择。
绘制地图这里,视频的方法比较简单,我这里采用的是函数(huatu)传参的方式绘制的。

以下就是通过循环次数来操作投色子的代码。

 do
            {
                Console.Clear();
                chu();
                huatu(Map, zb[0], zb[1]);

                if (rp[i % 2] != 0)
                {
                    rp[i % 2]--;//检测上次该玩家是否踩到暂停,使用i--的目的是方便调整暂停回合数
                    i++;
                    continue;
                }
                sz = c.Next(1, 7);
                zb[i % 2] = zb[i % 2] + sz;
                Console.WriteLine("玩家{0}掷出了{1},按任意键继续",i%2+1,sz);
                Console.ReadKey();
                
                //最优先检查该次投掷后该玩家是否获得胜利
                if (zb[i % 2] >= 99)
                {
                    i++;
                    break;
                }
                Console.Clear();
                chu();
                huatu(Map, zb[0], zb[1]);
                Console.WriteLine("按任意键继续");
                Console.ReadKey();
                
                //其次检查该玩家是否踩到另一位玩家
                if(zb[i%2]==zb[(i+1)%2])
                {
                    zb[(i + 1) % 2] = 0;
                    Console.Clear();
                    chu();
                    huatu(Map, zb[0], zb[1]);
                    Console.WriteLine("玩家{0}将玩家{1}踩回起点,按任意键继续",i%2+1,(i+1)%2+1);
                    Console.ReadKey();
                }

                //最后检查其他特殊事件
                //幸运轮盘
                if (Map[zb[i % 2]] == 1)
                {
                    Console.WriteLine("玩家{0}幸运轮盘,输入1交换位置,输入2轰炸对方",i%2+1);
                    do
                    {
                        try
                        {
                            select = Convert.ToInt32(Console.ReadLine());
                        }
                        catch{}
                        if(select != 1 && select != 2)
                            Console.WriteLine("输入不合法,请重新输入1或者2");
                    } while (select != 1 && select != 2);
                    if (select == 1)
                    {
                        zb[i % 2] = zb[i % 2] ^ zb[(i + 1) % 2];
                        zb[(i + 1) % 2] = zb[i % 2] ^ zb[(i + 1) % 2];
                        zb[i % 2] = zb[i % 2] ^ zb[(i + 1) % 2];
                    }
                    else
                    {
                        zb[(i + 1) % 2] -= 5;
                        if (zb[(i + 1) % 2] < 0)
                            zb[(i + 1) % 2] = 0;
                    }
                    select = 0;
                    Console.Clear();
                    chu();
                    huatu(Map, zb[0], zb[1]);
                    Console.WriteLine("按任意键继续");
                    Console.ReadKey();
                }

                //地雷
                if (Map[zb[i % 2]] == 2)
                {
                    zb[i % 2] -= 5;
                    Console.Clear();
                    chu();
                    huatu(Map, zb[0], zb[1]);
                    Console.WriteLine("玩家{0}踩到地雷,退5格", i % 2 + 1);
                    Console.WriteLine("按任意键继续");
                    Console.ReadKey();
                }

                //暂停
                if (Map[zb[i % 2]] == 3)
                {
                    Console.WriteLine("玩家{0}悲剧了,暂停一次",i%2+1);
                    rp[i % 2] = 1;//这里是数字可以用来设置暂停次数
                    Console.WriteLine("按任意键继续");
                    Console.ReadKey();
                }

                //时空隧道
                if (Map[zb[i % 2]] == 4)
                {
                    zb[i % 2] += 10;
                    Console.Clear();
                    chu();
                    huatu(Map, zb[0], zb[1]);
                    Console.WriteLine("玩家{0}happy了,进入时空隧道,前进10格",i%2+1);
                    Console.WriteLine("按任意键继续");
                    Console.ReadKey();
                }
                i++;
            } while (zb[0] < 99 && zb[1] < 99);
            //显示胜利玩家,注意有玩家获胜以后i会加一,所以(i+1)%2代表获胜玩家的下标,再+1代表获胜玩家
            Console.WriteLine("玩家{0}取得胜利",(i+1)%2+1);
            Console.ReadKey();

分享自:黑马程序员论坛!黑马程序员-最专业的北京.net培训

【资源说明】 基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip基于python开发的一个飞行棋小游戏源码(课程作业).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值