Qt战棋游戏
使用了Qt的战棋游戏
安装Qt
使用:C++、Qt5
环境:windows
1.项目中你要关心的部分(和项目有关的部分)
pic文件夹中有个getMap.py,和项目无关,只是生成自定义的地图图片
2.配置
在此config.h文件中
对应有
分别为图片配置,音乐配置,地图配置
1.Qt槽和信号类似观察者模式
2.新手教程页面采用饿汉式 而 具体游戏页面采用懒汉式构造(单例模式)
由于connect在接收游戏页面退出信号同时delete游戏页面时,出现错误。但有new就应该有delete,所以采用对游戏页面设置Qt::WA_DeleteOnClose,在关闭这个窗口时Qt能够自动回收该窗口所占用的资源。
3.游戏整体和士兵等都是使用状态模式,将它们设置未begin,end等不同状态
但要注意,二者有同名状态,注意加上作用域
1.使用双人模式完成的算法,在此基础上进行AI算法构建
2.采用寻找最近敌对人物的方式进行攻击
1.寻找可行点时使用了BFS
2.找到去可行点的最短路径时,使用了DFS
3.放弃了迪杰斯特拉和A*算法
1.使用一格一格之间的移动完成士兵在整条路径上的移动
2.完善了按钮动效,要注意设置合理的时间间隔
-
随机设置不同地图
-
改变行棋规则
举例说明:A棋子,有总行动力7
原有规则为,A行走完毕后,不论剩下多少行动力,都只能攻击一次
改变的规则为:
A棋子,有总行动力7,攻击消耗3点行动力
若此回合,不移动,可以攻击3次,7-3=4 第一次,4-3=1 第二次,1<3 但大于0 第三次
若此回合,已经消耗4点行动力,则现有3点行动力,只能攻击一次
部分改变代码如下
- 改进AI算法
图片资源大多使用的是easytech游戏公司的《欧陆战争7:中世纪》的资源
其游戏官网为:https://ieasytech.com/