原子象棋(中國象棋):每次吃子都爆炸
每次吃子都是一次爆炸。被吃的子、吃子的子,以及吃子點旁邊四個點上的所有棋子全部消失。卒兵能倖存,將帥不能。
所以有兩個子你永遠吃不得:任何站在自己將帥旁邊的子。而敵方將帥旁的兩個士,就是整盤棋的關鍵所在,因為誰在這兩點上吃子,誰就立刻取勝。
這是什麼
原子象棋(中國象棋) 就是把原子棋的爆炸放進中國象棋。我在 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 局重複和棋中,沒有一局是單方面將軍。雙方最佳著法下仍是和棋,這是棋類遊戲的常態。與第一版的差別在於,這些和棋裡沒有必然的強制著法線路。變體實驗室 裡有規則核心、修補程式,以及每一項數據背後的指令。
引擎說明不了的,是人與人之間下起來是什麼感覺。實力相當的人會不會磨到底(在低節點數下,實力相當的引擎八局中有四局和棋),象棋玩家能不能接受一隻只會兌子和堵線、不再掃清一路的炮,以及「車瞄著你的士仕線就是將軍」是不是一條要輸一次才學會的規則:這些只有人能回答。如果你找到強制線路,寄給我,我會署名加在這裡。