原子象棋(中国象棋):每次吃子都会爆炸
每次吃子都是一次爆炸。被吃的子、吃子的子,以及吃子点位四邻上的一切都会消失。兵卒能存活,将帅不能。
于是有两枚子你永远吃不了:任何紧贴自己将帅的子。而对方将帅两旁的两个士,正是整盘棋的胜负枢纽,因为谁在这两点上吃子,谁立刻取胜。
这是什么
原子象棋(中国象棋) 就是加入了原子棋爆炸机制的中国象棋。我在 2026 年把它移植到 9×10 的棋盘上,作为 Mistboard 的原创玩法;据我所查,此前没人把爆炸机制放到象棋棋盘上。它现已上线 Mistboard,可对战八个引擎等级或朋友,用普通棋具、普通开局摆法即可开战。
原子棋起源于 1995 年的德国互联网国际象棋服务器,规则由 Klaus Knopper 从面对面下这种棋的朋友那里收集而来。Lichess 在 2015 年加入了它,2021 年承办了 490 万局。在国际象棋棋盘上,它是一场充满弃子与早期猎王的对抗,白方的先手优势远大于国际象棋。而在象棋棋盘上,结果并不一样,相关数据在文末。
规则
一次吃子会移除吃子的子、被吃的子,以及吃子点位正交四邻上的所有子。斜向相邻的子不受影响。
兵卒能在爆炸中存活。兵卒只有被直接吃掉才会离场,不过主动吃子的兵卒与其他子一样会爆炸。
将帅无法在爆炸中存活。吃掉对方将帅旁边的子即刻取胜;吃掉自己将帅旁边的子则是不合法的着法,因此将帅永远不会吃子。开局时每个将帅两旁各有两个士,这两点正是胜负所在。
炮的吃子是唯一例外:只移除炮本身和它的目标。目标旁边的子不受影响,被炮翻过的炮架也不受影响。
其余一切都照中国象棋,只有一个词的含义被扩大:只要对手下一着能以任何方式除掉你的将帅,你就处于被将状态,所以一个车瞄着你将帅旁边的士,就是在将军,棋盘也会如此判定。这对仍然生效的象棋长将规则很重要。规则页面把这些都集中在一处,并附有一局示范棋。
为什么炮是例外
最初的版本让炮和其他子一样爆炸,引擎对局暴露出两个问题。第一是威力过大。从开局摆法出发,每个炮都能翻过对方的炮,吃掉后面的马,并炸掉旁边的车和象,一着吃三子,而每一局双方最佳着法的对局,开局都是双方照此下法。
第二是一种求和手段。位于士所在纵线上的车威胁炸掉将帅;唯一的解法是用炮堵住这条线;而在炮会爆炸的规则下,这个堵塞同时也是隔着车对进攻方自己的士的一记反击,于是车只能跳到另一条士的纵线,炮跟着过去,局面重复。防守方永远无法拒绝,在引擎对局里,已经少了一车的一方能靠这招与远强于自己的对手守和。
要消除这两点需要两条规则,缺一不可。炮的吃子不引爆爆炸,这终结了开局大屠杀,也让那个堵塞依然成立但不再有杀伤力。而威胁炸掉将帅算作将军,这使剩下的那种跳动变成单方面的长将,按象棋自己的规则,发出长将的一方判负。两条规则同时生效后,引擎宁愿在落后三分之一个兵的情况下继续下,也不接受和棋,而炮获得了原本没有的职责:它能堵住车而不威胁车,持车一方必须另寻方案。
一局示范棋
对局比中国象棋更短、更凶猛。在强引擎与弱引擎之间的十局决出胜负的对局中,六局以将帅被炸告终,四局以将死告终,最短 23 回合,最长 73 回合。开局看起来仍像象棋,因为谁先引爆第一次爆炸谁就要付出代价;引擎会走 Cb5、Ri3、Ra3 或 Hg3,第一次爆炸出现在中局。
这是最短的一局:Fairy-Stockfish 以一千万节点执黑,对自己的一百万节点。红方的帅在第 6 回合走进九宫角,第 8 回合一马吃掉一马并连带旁边的炮,最后一着是车吃掉将旁边的士,这里大多数对局都是这样结束的。
兵卒值得再看一局。它能在每次爆炸中存活,因此它是唯一能站在爆炸旁边而留存的子力;它也是最廉价的吃子工具,因为吃子的子反正都会损失。下图中一个卒即将吃掉 c9 的车。向前一步:车、c10 的象和 c8 的马全部消失,代价只是一个卒。
引擎对局能说明什么,不能说明什么
每一局都由规则内核裁判,由打过补丁的 Fairy-Stockfish 对弈,两者必须在每一处着法计数上一致,数据才会被采信。在这套规则下,强引擎在两档棋力差距的 32 局中胜 29 局,未输一局;开局摆法下的 44 个首着中,双方各一百万节点时红方无一着取胜,有三着落败;记录在案的 19 局重复局面和棋中,没有一局属于单方面将军。双方最佳着法下仍是和棋,这是棋类游戏的常态。与第一版的区别在于,这些和棋里不再有强制着法路线。变体实验室提供了内核、补丁以及每项数据背后的命令。
引擎说不了的,是人与人之间下起来是什么感觉。棋力相当的人会不会陷入拉锯(低节点数下棋力相当的引擎八局中有四局和棋),象棋棋手会不会喜欢一个只能兑子和堵路、不能扫清横线的炮,以及“车瞄着你士的纵线就是将军”这条规则是不是要靠输一局才学会:只有人能回答这些。如果你找到了强制着法路线,发给我,我会署名收录在这里。