光是紅方的第一個回合,就有 2,554 個局面

兩種棋裡,紅方在初始局面都有 44 種走法。在象棋裡,黑方對這些走法的應著共構成 1,920 個局面。在鴨子象棋裡,要等鴨子落到某個空點上(空點大約有 58 個),紅方的回合才算走完,所以光是紅方的第一個回合就有 2,554 個局面。

紅炮從 h3 走到 e3 之後的象棋棋盤,鴨子可以落下的 58 個空點上各有一個黃點。紅炮從 h3 走到 e3 後,鴨子可以落在這 58 個點中的任意一點上楚 河 漢 界Mistboard鴨子可以落下的點。每一個都是一個不同的局面。
紅方 44 種第一步走法中的一種。在象棋裡,接下來輪到黑方應著。在鴨子象棋裡,紅方要先把鴨子放到這些點中的一個上,每一種選擇都是一個不同的局面。

這個差距每走一個回合都會成倍放大。雙方各走一個回合之後,鴨子象棋的局面數就已經超過象棋雙方各走兩個回合之後的局面數。

走完以下回合後的局面數象棋鴨子象棋
紅方第一個回合442,554
雙方各一個回合1,9206,166,242
雙方各兩個回合3,290,240未統計
從初始局面出發的每一條合法著法序列,由 Fairy-Stockfish 統計。

這些局面裡,有一半其實是同一個局面

鴨子只有落在黑方下一步要經過的地方才有作用:黑方棋子要走到的點、要滑過的點,或者要跳過的點。落在別處,黑方的應著和盤上沒有鴨子時完全一樣。

同一張棋盤。30 個點上有橙色圓片,上面的數字是鴨子落在那裡會讓黑方少掉的應著數,最多的是黑方九宮前沿的 e8,少 8 種。其餘 28 個點是灰色小點。這 58 個點裡只有 30 個會改變黑方能走的棋楚 河 漢 界Mistboard1122334141115156476867424131424鴨子落在這裡,黑方的 45 種應著會少掉圓片上這麼多種鴨子落在這裡,對黑方毫無影響
有作用的點大多在黑方一側,位於黑方棋子的路線上。其中有些點上,鴨子還給黑方的炮當了炮架,因而多出一種應著。

最要緊的點是黑方九宮前沿的 e8:無論紅方第一步走什麼,鴨子落在那裡都會讓黑方少掉 8 種應著。那 28 個灰點什麼也不改變。把鴨子放在其中任何一點上,黑方面對的選擇都一樣,然後再把鴨子挪到新的地方,所以接下來的對局還是同一盤棋。只有兩處小差別:黑方不能把鴨子留在原地,而判定重複局面時要算上鴨子所在的點。

所以搜尋只需看其中一個,其餘的都可以跳過。凡是給黑方留下相同應著的落點都只算一次,第一步時紅方的 2,554 種回合就降到 1,310 種。

從初始局面出發的局面數,由本站自己的規則引擎統計。

鴨子離對手的棋子太遠,等於浪費半個回合

同一張棋盤對棋手來說也是一條經驗法則。把鴨子放在灰點上,對手的選擇和沒有鴨子時完全一樣,等於你只走了一步象棋,回合的另一半白白放棄了。鴨子要放在對手棋子的路線上才有價值:放在對方車和炮所走的路上,或者擋在對方的馬和象前面。開局時,作用最大的點在對手炮所在的那一行,一隻鴨子能同時截斷兩門炮。

子力越少,鴨子在博弈樹裡的分量越大

為了看到開局以後的情況,我們讓 Fairy-Stockfish 在兩種棋裡各自戰 64 局,並統計每一步的選擇數。象棋的選擇隨著棋子離盤而減少。在鴨子象棋裡,每吃掉一個子也會給鴨子空出一個點,所以一個回合幾乎和開局時一樣寬;走到第 200 個半回合時,它的選擇數約是象棋一步的 100 倍。

Fairy-Stockfish 在每種棋裡各自戰 64 局,圖中是每個半回合的合法回合數,採用對數刻度。各局長短不一,所以圖的右側來自較少的對局。

同樣的搜尋,在象棋裡能向前看 25 個回合,在鴨子象棋裡只有 14 個

這種寬度要拿搜尋深度來換。搜尋同樣數量的局面,Fairy-Stockfish 在鴨子象棋裡看到的深度只比象棋的一半多一點。兩種棋的深度我們都按回合計算,鴨子象棋的一個回合包括放鴨子。如果搜尋把每組等價的鴨子落點只算一次,就能贏回一部分深度。能贏回多少,我們還沒有測過。

搜尋局面數象棋深度鴨子象棋深度
100,000128
1,000,0001610
10,000,0002514
三個局面的中位數:初始局面,以及走了兩個回合和四個回合之後的局面。

一條小規則,讓象棋變成一種新棋

棋盤、棋子和走法全都是象棋的,所以象棋棋手坐下來就能下鴨子象棋。但鴨子幾乎改變了棋子背後的一切。開局理論在第一步之後就失效了,因為其中每一路變化都假定棋盤上沒有鴨子。對目前下這種棋的引擎來說,它也更難。傳統搜尋,也就是 Fairy-Stockfish 所用的 alpha-beta 搜尋,每向前多看一個回合,都要為每一個多出來的選擇付出代價,這就是為什麼搜尋預算越大,深度差距越大。

我們還不知道高水準的鴨子象棋是什麼樣子。有些落點純粹是技術,比如放在 e8 的鴨子,一下拿走八個應著。另一些落點針對的可能是對手這個人,而不是局面:把鴨子放在一個安靜的點上,引誘對方走某一步;或者用鴨子擋住對手正盯著的那條線,而真正的威脅在別處。一個能向前看 14 個回合的引擎找得到第一種。第二種,只有在高手之間的對局裡才會出現。

我們是怎麼統計的

第一步的局面由本站自己的規則引擎統計,也就是檢查這裡每一步棋的那段程式碼;更深的局面由 Fairy-Stockfish 統計。每種棋的 64 局也是 Fairy-Stockfish 下的,每步搜尋 100,000 個局面,並關閉了神經網路。象棋的計數嚴格按合法著法,所以讓自己的將帥可被吃掉的著法不算。鴨子象棋沒有將軍規則(吃掉將帥即獲勝),所以每一步走子都算。

下鴨子象棋閱讀規則