本项目是一个经典的跳棋游戏,使用c++编写,使用easyx图形库进行界面绘制。游戏支持双人、四人、六人对战,玩家可以通过鼠标交互进行棋子的移动跳跃。
在Board构造函数中按规则初始化棋子数组m_chess的坐标与颜色 调用render类中的drawChechersGame()绘制初始界面,棋子使用drawchess()绘制圆形棋子(使用easyx的setfillcolor()填充颜色和fillcircle()填充圆形)
玩家点击棋子:
调用isHereAChess()判断点击位置,若为当前玩家棋子,保存当前棋子到类的成员变量中,_is_chess_selected标记为true,下一次进入玩家跳棋界面。
玩家点击目标位置:
若触发胜利条件,弹出结束提示,否则切换currentPlayer
移动合法性校验
单步移动:使用邻接表adj检查周围为空的节点。
跳跃移动:递归检测中间棋子的对角位置是否为空,支持连续跳跃(通过队列实现BFS路径搜索)
胜负判断
遍历当前玩家的所有棋子,检查是否全部位于对方初始区域(如红方需全部到达y≥9的行)
由棋盘维护、记录所有棋子的所有信息,玩家只记录自己对应的颜色
当游戏管理类接受鼠标信号后,调用棋盘的方法,判断该位置有没有棋子
若有,则使用玩家实例,利用玩家的方法检测这个棋子的颜色和自己的颜色是不是匹配
如果是自己的棋子,返回true,随后由棋盘调取自己的移动棋子方法,控制权移交棋盘
(随后所有检测信息直接给棋盘),
直到棋子完成合法移动,更新自身状态,重新绘制棋盘
操作系统:Windows 编译器:支持 C++11 的编译器(如 Visual Studio) 图形库:EasyX
EasyX:用于图形界面绘制,需提前安装并配置。