这是一个完全在浏览器里运行的中国象棋人机对战:9 路 10 行,红方在下、黑方在上,红先黑后。你可以执红先行,也可以执黑让机器人先走;每走一步,棋盘都会标出这枚棋子的全部合法落点,被将军的将帅会闪烁提示。整个规则引擎和搜索算法都在本地运行,断网也能下棋,棋局不会上传到任何服务器。
操作:点自己的棋子选中,再点亮点落子;也可以按住棋子直接拖到落点。键盘快捷键:U 撤销、H 提示、F 翻转棋盘视角、M 开关音效、Esc 取消选择或关闭结果面板。翻棋后双方棋子始终正立,只改变观察方向。撤销会自动退回到你的回合,同时撤掉机器人随后的应手。
规则要点:帅/将只能在九宫内直走一步;仕/士在九宫内斜走一步;相/象走田字且不能过河,象眼被堵时不能走;马走日字,马腿被别时不能走;车走直线;炮走直线但吃子必须隔一个棋子(炮架);兵/卒只能向前,过河后可以左右走,不能后退。将帅不能照面,任何送将、留将自己的走法都不合法。一方被将死,或者轮到走棋却无子可动(困毙),都判负;三次重复同一局面、连续 120 个回合没有吃子也没有兵卒移动,判和。
中国记谱:红方路数从红方右侧向左数,用一到九;黑方路数从黑方右侧向左数,用1到9。同一路有多个同种棋子时用前、中、后区分。走法写作「棋子 + 起始路 + 进/退/平 + 目标路或步数」,例如 炮二平五、马8进7、车九进三。棋谱栏会按回合成对列出双方着法,最近一手高亮显示。
机器人:采用迭代加深的 alpha-beta 搜索,配合主要变例搜索、置换表、空着裁剪、后期着法缩减、杀手着法和历史启发,并在搜索末端做吃子静态搜索;评估综合子力、位置、车路、兵形与仕相防守。机器人运行在页面内的 Web Worker 里,思考时棋盘锁定但页面不会卡死;如果浏览器不支持 Worker,会自动退回主线程计算。相同局面、相同难度下回应是确定的,方便复盘核对。
三档难度:
- 休闲:约 2 层、0.24 秒,只看眼前两步,适合刚学规则时找手感。
- 进阶:约 6 层、1 秒,能算清常见兑子和两步杀,适合日常对弈。
- 大师:最多 12 层、2.4 秒,会主动抢攻、护子并寻找强制杀法,默认陪练。
提示与复盘:「提示」会用 6 层、0.7 秒的搜索推荐一手,并在棋盘上标出起点和落点。「复制战报」会把执子、难度、结果、着数、用时、完整棋谱和当前 FEN 复制到剪贴板,方便保存或求助。战绩只保存在本机浏览器,载入示例和复盘不计入统计。
五个示例:点击「载入这一局」会把棋盘摆到指定局面,并切换为执红。除困毙局外,都轮到你走;示例不计入本机战绩。括号里是同一份核心算出的推荐着法,可以和「提示」互相核对。
完整初始局面,红先。适合从零开始熟悉车、马、炮的配合;先点任意红子,就能看到它的全部合法落点。
红方车、炮、马已经压到黑方九宫,黑将退路被封。推荐着法 车九平五,一步将死;可以先自己找一找,再用「提示」核对。
双车分列两翼,黑将孤立无援。推荐 车九平五,黑方只有 将4进1 一手,红方再 车八平六 成杀;大师难度会直接找到这条强制线。
两门红炮同在中路附近,黑将两侧被士堵住。推荐 炮二平五,让前炮成为后炮的炮架,一步重炮将死。
轮到黑方走,但两个士被红车控制、将又被自己的士堵死,黑方没有任何合法着法,也没有被将军。按中国象棋规则这是困毙,红方获胜;载入后会直接给出结果,可用来验证「无子可动判负」。
小技巧:开局先出车、活马,炮不要轻易沉底;中局注意将帅照面和马腿、象眼,别让自己的棋子堵住退路;残局里车炮配合要留炮架,单车难胜士象全。想练杀法,可以先载入上面的示例,再用「提示」看引擎的强制线,然后点「重摆」自己复现一遍。