跳到主要内容
PUZZLE GAME / 棋类

中国象棋

经典中国象棋——10×9 棋盘含楚河汉界、九宫、炮位,红黑双方对弈,吃掉对方将/帅或将死对方即获胜。支持车马炮相士兵将全部走法,含马腿/象眼/炮架等完整规则。

玩法说明​

  • 红方先手——双方轮流点击己方棋子移动
  • 点击己方棋子高亮选中,并显示所有可走位置(绿色圆点)
  • 点击目标位置完成移动;不能送将(将/帅被攻击时不能走该步)
  • 吃掉对方将/帅或让对方无合法走步即获胜(绝杀)
  • "将军!" 提示自动出现

特点​

  • 完整中国象棋规则:车、马、炮、相/象、士/仕、兵/卒、将/帅 七种棋子各自独立走法
  • 含马腿(蹩马腿)、象眼(塞象眼)、炮架(隔山打牛)等特殊规则
  • 过河兵可横走、未过河只能前进
  • 双方将/帅不能照面(自动校验)
  • SVG 渲染的棋盘含九宫斜线、楚河汉界
  • 楷体字棋子,复古中国风

操作​

操作桌面端移动端
选中 / 移动鼠标点击手指点击
重新开始重置游戏 按钮按钮

进阶规则​

  • 将帅不能照面 — 双方将/帅若在同一直线上且中间无棋子,自动判为非法局面
  • 马腿 — 马走"日"字时,方向上第一格(马腿)被占据则不能走
  • 象眼 — 象走"田"字时,对角第一格(象眼)被占据则不能走
  • 炮架 — 炮吃子时必须跳过一个棋子(炮架),吃子目标在炮架之后
  • 过河兵 — 兵/卒未过河只能前进,过河后可横走但不能后退
  • 九宫限制 — 将/帅、士/仕的活动范围限定在己方九宫内
  • 不能送将 — 任何走步不能让己方将/帅处于被攻击状态

技术实现​

  • 纯静态 — HTML + CSS + SVG + 原生 JavaScript,无任何依赖
  • SVG 棋盘 — 网格线、九宫斜线用 SVG <line> 绘制
  • 棋子渲染 — 圆形 DOM 元素 + 楷体字 + 红/黑两色
  • 规则引擎 — 每种棋子独立 getValidMoves 函数,统一过 isCheck 过滤
  • 绝杀检测 — 当一方无任何合法走步且被将军时判负
  • 响应式 — 棋盘固定 450×500,自适应桌面与移动端