Skip to content

Raltour/Checkers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Checkers

项目概述

本项目是一个经典的跳棋游戏,使用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:用于图形界面绘制,需提前安装并配置。

About

Checkers 中式跳棋 C++实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages