圈圈叉叉OX棋下法:破解以及推算方式與過程 (一)

圈圈叉叉OX棋下法:破解以及推算方式與過程 (一)

遊戲

井字棋,大陸、台灣又稱為井字遊戲、圈圈叉叉;另外也有打井遊戲、○×棋的稱呼,香港多稱井字過三關、過三關,是種紙筆遊戲。

玩法

兩個玩家,一個打圈(?),一個打叉(?),輪流在3乘3的格上打自己的符號,最先以橫、直、斜連成一線則為勝。

如果雙方都下得正確無誤,將得和局。

這種遊戲實際上是由第一位玩家所控制,第一位玩家是攻,第二位玩家是守。

第一位玩家在角位行第一子的話贏面最大(見圖一),第二位玩家若是在邊,角位下子,第一位玩家就可以以兩粒連線牽制著第二位玩家,然後製造「兩頭蛇」,所以他必須下中央。如第一位玩家下在中央,則第二位玩家必須下在角位才不會輸。如第一位玩家下在邊位,第二位玩家可以下在中央或角位,或是與第一位玩家下的位置相對的邊位。

推算演演繹

我們知道這個遊戲總共只有九格,如果要在其中得到必勝的套路,我們如果用窮舉法來計算那麼九格九步,我可以用九的九次方來計算

9x9x9x9x9x9x9x9x9

9^9 (九乘九 包裹雙方下棋的部署) = 387420489

通過以此類推的方式,我們可以得到 387420489 ,我們知道使用窮舉法最後可以擁有 387420489 演變結果。

但是這種單式的窮舉演算法其實並不正確, 其中很多演變結果是重負性質的,而且類似的單方面的窮舉法,所需要記的數值實在太多。所以接下來我們要使用簡化推演算法。

先手:先開始下的一方

後手:後開始下的一方

比如一開始,先手一方可以選擇的是九格里的任意一格,等到了後手下的時候,後手剩下的其實只有8格可以選擇,接下來的先手下的棋只能從7格中選擇,以此類推推演方程式可以簡化成 

所以我們的推算的方程式從9的9次方,換成了

9x8x7x6x5x4x3x2x1 = 362880 種演變結果。

所以我們從本來想要推演387420489 種演變結果中,簡化成了362880 種演變結果,

但是這種推算方式雖然簡化了,但是人腦還是承受不起這種推算方法,即使是推算了,先不提能不能記完所有的演變結果,其中所消耗的記憶+時間+精力是何其多。

所以到這裡我們又有簡化這種推演算法的需求了,哪怕人腦能記的下來,並且推算出各種演變結果,又有誰願意去記載和花費這麼多的時間和精力來推算?

其實一開始的選擇權我們不需要窮舉完,只需要窮舉3格,因為一開始無論上下左右,都是一樣的。所以我們不需要窮舉這些重覆性質的演變結果。接下來但凡擁有重覆性質的演變結果,我們都不需要去推演他。

所以其實先手的第一步棋只有三種可能性,我們只需要窮舉這3種可能性就行了。

現在開始我們可以開始窮舉了,別擔心我們並不需要窮舉完全部,一開始的推演法只是為了擁有一種窮舉的概念而已。 並非無用,也並非一定要窮舉完,我們只需要推演幾層的推演機結果就可以了。

為了方便推算, 我會把先手的開局手法,簡稱為 A 開局(角落), B 開局(邊線),C 開局 (中部)。

A 開局必勝推演

A 開局,如果身為後手最佳的防守在 B1,其次B2 , 如果後手第一步放在A1,A2,A3的位置,就100%肯定會輸。

如果後手放在B1,B2 位置除非先手自尋死路,否則就是和棋,

所以在這遊戲中,先手,比較容易贏,但是如果後手懂的下,根據推演結果,只要有一方不出錯則肯定是和局。

B 開局必勝推演

橙色 B1,B2 推演套路是只有後手不布防在紅色B1,B2格子,先手必 贏。

同等如果後手,布防在紅色格子,就必然會輸,

如果棋路推演到B3,後手自尋死路,那麼先手就會贏,如果後手懂的下,那麼棋路就會發展到B3.1 那麼雙方平手

反之,除非先手自尋死路,否則就是和棋,根據推演結果,根據B開局,只要有一方不出錯則肯定是和局。

C 開局必勝推演

橙色C1 推演套路是只有後手不布防在B1格子而布防在紅色格子,先手必贏。

同等如果後手,布防在紅色格子,就必然會輸,

如果棋路推演到C2後手自尋死路,那麼先手就會贏,如果後手懂的下,那麼棋路就會發展到C2.1 那麼雙方平手

總而言之,這套遊戲推演的方式主要在這10個套路里,如果雙方都懂得推理到這個地步,雙方都沒有犯錯無論進行多少盤,依然會是平手。

這個遊戲主要在10個套路里,其他推演過程就不一一推演出來,因為那推演了也沒有用,剩下的推演套路都非常簡單,只需要二層推演,只要不笨,些微思考之下,都不會輸。

其他棋盤遊戲如中國象棋,西洋象棋等,都可以運用類似的推演方式,不過那就會複雜很多,需要很強大運算能力才可以進行推演。這個遊戲推演的頂多是三層, 這些套路都是屬於第三層次的推演。 (第一層次推演,如果我下了這一步,對方會下那一步。第二層推演,如果我下了這一步,對方會下那一步,那我在下這一步對方會下那一步。 以此類推)越多層次的推演越可耗費腦力,其耗費的腦力以及精力是以幾何的方式增加。一般人由於習慣,精力不足等原因只能推演到第二層。而中國象棋等其他棋盤,可能需要推演至5-7步,等於5-到7層,有者甚至可以推演到10多層。(當然不是全盤窮舉,而是根據最優步法窮舉法,但是那也不簡單了)。

推演這些比較簡單的遊戲,可以在某種程度上訓練我們的推演能力。 偶爾為之,不亦樂乎?!。
推薦閱讀:

希望女友穿著不要太暴露的男人就是直男癌嗎?
我是如何渡過懈怠期的
女孩子遇到別人罵髒話該怎麼辦?
為什麼有人會討厭羅威納犬?
乞丐到王者——從認錯開始

TAG:博弈論 | 心理 | 邏輯 |