WPF 飞行棋游戏

8 篇文章 0 订阅

每次乘坐公交车的时候,手机信号都很差。为了打发时间,下载了一个小游戏合集,里面就包含有飞行棋。

闲来无聊就打算自己制作一个飞行棋游戏。

在制作飞行棋的时候,我在百度搜索了关于【C#飞行棋】,得到的结果全是用控制台编写的,代码也差不过。不过在后面找到了一篇关于Android的飞行棋博客。

Android博客链接:https://blog.csdn.net/Shenpibaipao/article/details/70194542

他写了三篇飞行棋设计博客,结合他的文章内容和我在手机上的游戏规则,编写了一款辣眼睛的飞行棋游戏。

本来打算写成可局域网对战,奈何自己技术有限,就把这个想法抛弃了。相关链接:https://www.cnblogs.com/wgp13x/p/3800030.html

目前已完成单人游戏的基本功能,就只有抛骰子和迭机动画未写。

 

游戏规则:

1.每次抛掷出6点,都可以在掷一次骰子。

2.若停在与棋子同色的色块上,可飞跃至下一个同色色块;若停在快速通道【程序中称为传送门】的同色色块上,分两种情况:

           ⑴若停在传送门起点,棋子先飞跃至传送门终点,在飞跃至下一个同色色块。

           ⑵若飞跃至传送门起点,则只能够飞跃至传送门终点。

3.击杀:棋子停至某格,若已停有其他颜色的棋子,则可以将其撞会飞机场。

4.迭机:同色棋子停在同一格称之为迭机。某色棋子迭机时,其他棋子无法通过该格,但是会先移动至该格,然后再【后】退,后退过程中还遇到,同理;当某色棋子停在迭机方格,则将迭机棋子全部击杀

5.四颗棋子率先抵达终点者获胜,若点数多余,则棋子往回走。当游戏胜利后,五秒钟后会重置本轮游戏,玩家数据设为最初的【默认值】

程序框架:

本来也打算用什么牛B哄哄的框架来写,后面仔细想想有点浪费时间【时间不多】,就一切从简。

就如图上所述一样,

Converters里面存放的都是一些转化,本来是用于DataGrid,将一些数据进行转换,后面被抛弃了局域网,所以这里面的文件也没有用了。

Data里面保存的就两个txt文件,一个是存放地图信息,除了第一次加载地图的时候,其他都是读取map.txt里面的数据;另一个就是保存用户设置。

Entity存放飞行棋最基本的类,Box是地图的方格;Chess是玩家的棋子,继承Button;Player飞行棋玩家;Map就是所有方格的集合。

Game保存游戏里的公共内容。

Helpers游戏的一些帮助类。

Images整个游戏的资源文件存放此处。

theme控件样式。

Windows游戏界面。

 

地图介绍:

图片来至于https://blog.csdn.net/Shenpibaipao/article/details/70194542,我的图片素材是从他那下载过来的,然后再用ps稍微修改了一部分。

这是一张1080*1080的图片,将其分割成36*36,地图上的每个点都能对应一个坐标,后面为了方便给方格排序,我稍微微调一下坐标点。

将方格分类为:基础方格、飞机场方格、起飞点方格、起点方格、传送门起点方格、传送门终点方格、转折点方格、冲刺方格和终点方格

基础方格:棋子正常跑的赛道,但不包含冲刺赛段【最后一段直线】。

转折点方格:某色棋子基础方格的最后一个

冲刺方格:最后一段直线。

    /// <summary>
    /// 飞行棋地图中的方格
    /// </summary>
    [Serializable]
    public class Box
    {
        /// <summary>
        /// 方格编号
        /// </summary>
        public int BoxID { get; set; }
        /// <summary>
        /// X轴坐标
        /// </summary>
        public int PointX { get; set; }
        /// <summary>
        /// Y轴坐标
        /// </summary>
        public int PointY { get; set; }
        /// <summary>
        /// 所属颜色
        /// </summary>
        public ColorEnum Color { get; set; }
        /// <summary>
        /// 是否是基础方格
        /// </summary>
        public bool IsBasic { get; set; }
        /// <summary>
        /// 是否是飞机场
        /// </summary>
        public bool IsAirport { get; set; }
        /// <summary>
        /// 是否是棋子的起飞点
        /// </summary>
        public bool IsTakeOff { get; set; }
        /// <summary>
        /// 是否是传送门起点
        /// </summary>
        public bool IsPortalStart { get; set; }
        /// <summary>
        /// 是否是传送门终点
        /// </summary>
        public bool IsPortalEnd { get; set; }
        /// <summary>
        /// 是否是棋子的转折点
        /// </summary>
        public bool IsCrisis { get; set; }
        /// <summary>
        /// 是否是赛道的冲刺阶段(最后一段直线)
        /// </summary>
        public bool IsHomeStraight { get; set; }
        /// <summary>
        /// 是否是棋子的终点
        /// </summary>
        public bool IsDestination { get; set; }
    }

因为需要将方格集合需要保存到txt文档中去,需要标记【Serializable】

电脑玩家:

其他的内容我也就不多说了,程序中每个方法都有注释,我相信应该能够理解。

电脑玩家的代码我就没随便写了,如果你们有兴趣可以自己完善。我就简单的做了一些if判断。

运行效果图:

   

如果你要换成Winform的项目,那你就需要更改移动动画和界面,整个程序没有加try..cath..,所以嘛。。。。

下载链接:https://download.csdn.net/download/dear200892/11710302

百度云盘:https://pan.baidu.com/s/1j6lEdLoAmrk2eWecoTRmTA 提取码:4qu3 

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于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、付费专栏及课程。

余额充值