開局只有一條安全路線

紅方第一著是炮隔著對方的炮吃馬;兩種選擇互為鏡像,就稱之為 1. Cxb10。黑方必須吃子,有兩種方式。用車吃回那門炮會被強制擊敗:紅方把棋子一個個送出去,車不得不逐一吃掉,34 步之後紅方無子。這一點已被證明,一份 1,864 個局面的證明憑證已由一個只懂規則的檢驗器重播。用另一門炮轟向紅方底線,1...Cxh1,則站得住。

1. Cxb10 之後:黑方必須吃子楚 河 漢 界
1. Cxb10 之後黑方的兩種吃法。車在 b10 吃回是已被證明的負著;炮隔著紅方自己的 h3 炮打到 h1,是唯一的著法。

接著紅方有兩種應法,都站得住:安靜地用車吃炮,2. Rxh1,交換就此結束;或者繼續開炮,2. Cxd10,給黑方設下第二個陷阱,因為只有用將吃炮的 2...Kxd10 站得住。這條連鎖強制吃子有 166 個可能的終點,我們從每一個不同的終點各下了一盤。兩個存活下來。其餘每一條分支都會讓走進去的一方輸。

2. Rxh1 Rxb10:輪到紅方楚 河 漢 界2. Cxd10 Kxd10 3. Rxh1:輪到黑方楚 河 漢 界
連鎖中存活下來的兩個終點。雙方各十四子,棋盤上無子可吃,棋局就此展開。

然後九宮讓它成為和棋

要取勝,你必須送掉將、兩個士和兩個象,而它們誰都離不開家。每一個都只能被走到它跟前的敵方棋子吃掉,而雙方都在設法擺脫恰恰是那些棋子。一旦雙方都沒有了車、馬、炮、兵,就再也不可能發生吃子,規則把這判為和棋。

2M 對局第 35 步:死局楚 河 漢 界
引擎每著兩百萬節點自戰的對局,第 35 步。棋盤上再沒有任何棋子能吃掉任何東西。

在每一盤引擎對局裡,想讓棋局停下來的一方都可以把可出擊的子力送給對手,對手不得不吃;或者把一輛孤車停在對方任何棋子都永遠進不來的線路上。在一百萬和五百萬節點下,車留在了棋盤上,棋局變成一百步成對交換的兵戰,結局相同。這是和棋的證據,而不是證明:我們跑過的搜尋都沒有從任何一個存活局面找到勝法,而找不到的原因是棋盤本身的性質。

四種修補和兩個同族變體,沒有一個成為像樣的棋

把每一個僵局判給子少的一方能去掉免費的和棋,但沒有一個為子數而戰的引擎就無法測試。Codrus 是 1844 年的祖先,輸掉將即獲勝,它經由同樣的開局路線成和,而且更快。Losers 保留將的王者身份,有勝負,但方向錯了:在我們試過的每一種強度下都是黑方必勝,因為一次將軍會暫停吃子義務,而這個先手落在後手一方。放九宮裡的棋子出來則已經是另一張棋盤了。

我們發佈的是什麼,而不是一個對局頁面

完整寫出三套規則的規則核心、Fairy-Stockfish 的變體配置、開局連鎖的全部 166 個終點、每個終點在兩種搜尋深度下各一盤引擎對局、每一份證明憑證、一個幾秒鐘內就能對照規則重播它們的檢驗器,以及放在瀏覽器裡的每一盤棋。如果你能給出第三條存活的開局、任何一份憑證裡的防守,或者從上面的局面出發任何一方的勝法,請去那裡提一個 issue;文章會如實寫明。

閱讀完整分析親自檢驗這些證明學習象棋