纯前端实现的中国象棋人机对战游戏,无需后端依赖,开箱即用,支持完整的象棋规则和智能AI对战。
- 🎮 完整象棋规则:支持帅/将、士/仕、相/象、马/馬、车/車、炮、兵/卒的全部走子规则,包含将帅不照面、马腿/象眼阻挡、兵卒过河横向移动等细节
- 🤖 智能AI:AI具备基础的吃子策略、位置评估、防御意识,优先攻击对方老将、保护己方核心棋子
- 🕹️ 友好交互:支持棋子选中高亮、可移动位置提示、吃子动画、回合计时
- ✨ 实用功能:悔棋、重新开始、胜负判定弹窗、移动端适配
- 🎨 视觉体验:仿真实木棋盘样式、楚河汉界分隔、棋子光影效果
git clone https://github.com/EndlessPixel/chinese-chess-js.git
cd chinese-chess-js直接打开 index.html 文件即可运行,无需额外依赖(推荐使用 Chrome/Firefox/Edge 现代浏览器)。
- 点击己方棋子选中,再次点击目标位置移动(或点击空白处定位目标位置)
- 点击「显示可移动位置」可查看当前选中棋子的所有合法走法
- 「悔棋」可回退最近两步(玩家+AI各一步)
- 「重新开始」可重置棋盘和游戏状态
- 帅/将:仅能在九宫格内横竖走一步,不可照面
- 士/仕:仅能在九宫格内斜走一步
- 相/象:斜走两步,不可过河,象眼有子则无法移动
- 马/馬:走日字,马腿有子则无法移动
- 车/車:横竖无阻挡移动任意步数
- 炮:横竖无阻挡移动任意步数,吃子需隔一子
- 兵/卒:未过河仅能前进,过河后可横向移动
修改 makeAIMove 中的价值评估逻辑:
- 调整
calculatePositionValue中的位置加分权重 - 修改
calculateDefenseValue中的防御加分权重 - 调整AI可选最佳移动数量(默认前3个随机选)
修改 css 文件夹中的CSS样式:
- 调整棋盘颜色(
.board背景) - 调整棋子样式(
.piece背景/阴影/字体) - 调整响应式尺寸(
@media适配规则)
- 双人对战模式:注释掉
switchTurn中的AI触发逻辑 - 走子记录:扩展
moveHistory状态,添加走子记录UI - 难度选择:新增AI难度等级,调整思考深度/价值评估权重
本项目基于 MIT 许可证开源 - 详见 LICENSE 文件。
- 中国象棋规则参考:中国象棋协会官方规则
- 界面设计参考:经典象棋游戏视觉风格
### 总结
1. **核心修复**:`checkWin` 改为从 `gameState.pieces` 取值+返回具体获胜方,`attemptMove` 按获胜方判定输赢,彻底解决黑方失灵问题;
2. **README亮点**:
- 清晰的功能特性+快速开始步骤,方便使用者上手;
- 完整的项目结构说明,适配你拆分后的模块化代码;
- 提供自定义扩展指南(AI难度/样式/功能),提升项目实用性;
- 规范的开源许可证+标签,符合GitHub项目发布标准。