下落四子棋導(dǎo)論(一)基礎(chǔ)篇
一、簡介
歡迎來到下落四子棋導(dǎo)論(一),該文章由本人原創(chuàng)。該篇為基礎(chǔ)篇,我們會介紹一些基礎(chǔ)概念和理論。
下落四子棋在7列,6行的棋盤上進(jìn)行,與五子棋不同,棋子會下落。規(guī)則:率先連成四子的一方勝,橫、豎、斜皆可。
棋盤十分小巧,且每次落子僅有7種選擇,使得其博弈樹很小,甚至AlphaBeta搜索都可以找出最優(yōu)解。
這是一個(gè)先手必勝的游戲。但持先手想贏也并不容易,難度大于無禁手的五子棋。
二、在線對弈平臺
可以在GooglePlay獲取。
注:華為手機(jī)由于不支持谷歌,需要在Gspace容器下運(yùn)行。
個(gè)人的在線平臺戰(zhàn)績:
三、四子棋網(wǎng)頁版
https://connect4.gamesolver.org/
在網(wǎng)頁版中,可以自己和自己下,也可以和AI下。
該AI基于Alpha-Beta Search,遵循快贏慢輸原則,可以認(rèn)為每一步都是最優(yōu)解。
但是因?yàn)橄路ㄌ^經(jīng)典,不會變招,所以AI持后手時(shí)的棋力較弱。(換句話說,AI的下法都是被玩爛的定式~)
四、記號與約定
約定紅色為先手方。從左到右依次為a~g列,從下到上為1~6。高度為奇數(shù)的格子稱為奇格,否則為偶格。
例如,棋盤最右下角的位置是g1。
五、獲勝的方法
(1)同時(shí)創(chuàng)造出兩個(gè)需要攔截的點(diǎn)。
輪到紅方,讀者可以思考一下以下局面如何落子。
很顯然,紅應(yīng)該下e1。
四子棋的活三相當(dāng)于五子棋的活四。所以,看見活二就應(yīng)該去堵。
輪到紅方,讀者可以思考一下以下局面如何落子。
這是一個(gè)經(jīng)典的定式,此時(shí)紅顯然應(yīng)該下g3(最右邊一列)。
輪到黃方,讀者可以思考一下以下局面如何落子。
這又是一個(gè)很常見的定式。很顯然,黃只能下第一列。
否則,紅下第三列,后果很嚴(yán)重。
請讀者評估以下局面,黃方為什么會很快輸?shù)簦?/p>
紅只要得到f3或f4,就能連成四子。
因此,之后紅只需要在f列不斷填子,即勝。
輪到紅,應(yīng)該怎么下?
答:只能下b列或d列,否則黃下b4,后果很嚴(yán)重。
(實(shí)際上正解是下b列,下d列其實(shí)并不好。當(dāng)然,這里涉及到棋感、還有一些后邊章節(jié)的內(nèi)容,就不過多展開了。)
(2)VCT
VCF相信大家都不陌生,該術(shù)語在五子棋中非常常見,為Victory of Continuous Four的縮寫,是利用連續(xù)不斷沖四這種絕對先手,直至最終成五而取得勝利的一種技巧。
那么VCT就是Victory of Continuous Three。
這塊我認(rèn)為沒什么好講,取決于你的經(jīng)驗(yàn)以及大腦的算力。
輪到紅方,下哪可以贏的最快?
答:f列或g列,大家可以在網(wǎng)頁動(dòng)手驗(yàn)證。(棋盤已經(jīng)擺好)
https://connect4.gamesolver.org/?pos=4543533744
六、迫手理論
實(shí)際上,只要對手稍微有些水平,前兩種辦法都很難奏效。
迫手理論是下落四子棋的核心理論,之后所有進(jìn)階內(nèi)容都是該理論的延伸。
(1)迫手是什么?
迫手就是即將形成四連的最后一格。
迫手的奇偶性很重要。如果迫手的高度為奇數(shù),則為奇格迫手。如果迫手的高度為偶數(shù),則為偶格迫手。
下圖是剛剛講過的經(jīng)典定式,請讀者回答:
1.黃方有哪些迫手?它們是奇格迫手嗎?
2.紅方有哪些迫手?它們是奇格迫手嗎?
答:黃目前有b4,f4兩個(gè)迫手,兩個(gè)迫手的高度都為4,因此都是偶格迫手。
紅目前有f3一個(gè)迫手,高度為3,因此是奇格迫手。
(2)跟進(jìn)策略
跟進(jìn)策略就是:對手下哪列,我就下哪列。
這個(gè)策略聽起來很蠢,但跟進(jìn)策略有一個(gè)好處:無論對方怎么下(以什么順序下),最后得到的局面都相同。
當(dāng)然,一些特殊情況需要放棄跟進(jìn)。比如對方下了a6,那么a列被填滿了,我就無法在a列繼續(xù)跟進(jìn)。又比如對方弄出了一個(gè)沖三,強(qiáng)迫我去堵他,我也將無法繼續(xù)跟進(jìn)。我們暫不考慮這些情況。
(3)迫手如何決定勝負(fù)(一)
現(xiàn)在請你回答,在(1)中的局面,AI顯示紅方必勝。那么紅方為了獲勝,應(yīng)該怎么做?
首先,我們可以肯定黃不會下f列,否則黃直接輸了。
其實(shí),紅方最簡單的應(yīng)對,就是利用(2)提到的跟進(jìn)策略。也就是黃下哪,紅就下哪。
于是,不管黃怎么下,最后得到的盤面一定如下圖所示。
此時(shí)輪到黃方,可以看到即使黃不想下f列,也不得不下,最終紅勝。
這就是利用迫手獲勝的大致原理。
(4)無效迫手
若己方有一個(gè)迫手,記為α。
某個(gè)迫手β與α在同一列,且高度大于α。
① 第一類無效迫手:β為己方迫手,且奇偶性與α相同,則β為第一類無效迫手。
例如黃方有迫手a2、a4、a6,則只有a2是有效迫手。
② 第二類無效迫手:β為對方迫手,且奇偶性與α相反,則β為第二類無效迫手。
例如紅方有迫手e3,黃方有迫手e4,則只有e3是有效迫手。
下圖中,雙方有哪些迫手,哪些是有效迫手?
黃方有b4、b6。f2、f4、f6迫手,紅方有b3、b5、f3、f5迫手。
其中只有紅方的b3,黃方的f2是有效迫手。
黃方有b3迫手,紅方有b5迫手,那么b5是無效迫手嗎?
答:不是,不滿足奇偶性相反。
(5)迫手如何決定勝負(fù)(二)
之后提到迫手的時(shí)候,默認(rèn)都是有效迫手。
一般來說,后手方偏好偶格迫手,先手方偏好奇格迫手。另外,如果后手方有2個(gè)奇格迫手,也是必勝。當(dāng)然,實(shí)際的組合要復(fù)雜一些,我們列在下面。
①先手方有0個(gè)奇格迫手,此時(shí):
后手方有偶格迫手:后手方勝。
后手方有2個(gè)奇格迫手:后手方勝。
否則,和棋。
②先手方有1個(gè)奇格迫手α,此時(shí):
后手方有1個(gè)奇格迫手β(且α和β不在同一列):和棋。
后手方有2個(gè)奇格迫手:后手方勝。
否則,先手方勝。
③先手方有2個(gè)奇格迫手,此時(shí):
后手方有2個(gè)奇格迫手:后手方勝。
否則,先手方勝。
總結(jié):先手方想取勝僅有一種方案:①造出奇格迫手,同時(shí)避免對方形成任何奇格迫手;后手方想取勝有兩種方案:①造出偶格迫手,同時(shí)避免對方形成任何奇格迫手。②造出兩個(gè)奇格迫手。
另外,對于后手方,有無偶格迫手很關(guān)鍵,但有多少個(gè)偶格迫手不關(guān)鍵。但奇格迫手卻是越多越好。
下圖雙方有哪些有效迫手?請寫出這些迫手的奇偶性。為什么紅方會輸?
紅方有偶格迫手b2、f2。黃方有偶格迫手b6、f6。
根據(jù)①,先手方(紅)有0個(gè)奇格迫手,后手方(黃)有偶格迫手,故后手方勝。
下圖雙方有哪些有效迫手?請寫出這些迫手的奇偶性。為什么黃方會輸?
紅方有偶格迫手a4、奇格迫手b5。黃方有偶格迫手g6。
根據(jù)②,先手方(紅)有1個(gè)奇格迫手,后手方(黃)沒有奇格迫手,故先手方勝。
下方這個(gè)局面,你猜測誰會贏?
此時(shí)后手方(黃)有兩個(gè)奇格迫手c3、g3,因此后手方很容易贏。
下圖雙方有哪些有效迫手?請寫出這些迫手的奇偶性。為什么可以打和?
先手方(紅)有1個(gè)奇格迫手f3,后手方(黃)有1個(gè)奇格迫手d5,故打和。
根據(jù)剛才的講述,先手方有1個(gè)奇格迫手α,后手方有1個(gè)奇格迫手β(與α不同列),是和棋。但若先手方有2個(gè)奇格迫手,則變成先手方勝。
你能講出其中的原因嗎?
答:先手方可以拋棄與β不同列的那個(gè)奇格迫手。則局面會退化成:先手方1個(gè)奇格迫手γ,后手方1個(gè)奇格迫手β(且γ與β在同一列),則先手勝。下圖展示了這種情況:
先手方(紅)有2個(gè)奇格迫手a5、e3,后手方(黃)有1個(gè)奇格迫手e3。
此時(shí)紅想取勝,可以下第一列,主動(dòng)將自己的一個(gè)奇格迫手a5拋棄。
(6)特殊情況
一些迫手并不能達(dá)到預(yù)期的效果,請看下例。
讀者可以思考,此時(shí)紅方有奇格迫手b5,黃方?jīng)]有迫手,但為何紅方只能打和。
該例說明,部分迫手會在填子過程中被破壞。根據(jù)下一章所要講到的剩余子原理,剩余子為奇數(shù),代表黃方可以奪取奇格(含a5),因此紅的b5迫手無效。我們可以稱這類迫手為第三類無效迫手。
另一種特殊情況就是相鄰迫手,得到相鄰迫手的一方可以輕松取勝。
此時(shí)紅方的迫手g3、g4是同列、相鄰的,紅只需要在g列填子即可獲勝。
(7)小測&尾聲
輪到黃方,應(yīng)下哪里?
答:e4,避免紅方形成奇格迫手d3取勝。
輪到黃方,應(yīng)下哪里?
答:只能下c1。
①若黃下b1,則紅下b2,形成奇格迫手c3,黃必輸。
②若黃下b、c以外的列,紅可以下b1(或c1),形成沖三。黃堵上后,紅再下b2,形成奇格迫手c3,黃必輸。
若能熟練掌握迫手理論,那么恭喜,你已經(jīng)成功入門四子棋啦。
高手對弈的核心就是爭奪迫手。為了得到迫手,需要在起始階段就開始布局。下一章我們會討論這一點(diǎn)。
七、迫手理論的延伸:潛在迫手
(1)連續(xù)子原理
連續(xù)子原理:同一列相鄰的兩格,一般能獲取其中一格。
該局面下,紅方為何必勝?
根據(jù)連續(xù)子原理,紅能得到a3、a4的其中一格。無論得到哪一格,都能形成奇格迫手b3,從而獲勝。
(當(dāng)然,黃可以下b2來破壞這個(gè)潛在迫手,但之后紅下b3,形成相鄰迫手,對黃更加不利。)
(2)潛在迫手
潛在迫手:即將形成有效迫手的最后一格。
下圖雙方有哪些潛在迫手?
黃有b1、f5潛在迫手。因?yàn)辄S若得到b1(或f5),則可以形成d3奇格迫手。
同理,紅有b3、b5、d3、f1、f3、g4潛在迫手。
在(1)中所示局面,有哪些潛在迫手?c6是潛在迫手嗎?f3是潛在迫手嗎?
答:對于紅方,a3、a4、b3是潛在迫手。
c6不是潛在迫手,因?yàn)榧t即使得到c6,產(chǎn)生的奇格迫手f3并不是有效迫手。
(另外,按照定義,f3是潛在迫手。然而,紅方是不可能奪取f3的,因?yàn)閒列有黃方的偶格迫手f2。所以,也可認(rèn)為f3不是潛在迫手。)
對于黃方,a4、c5是潛在迫手。
(另外,按照定義,f4是潛在迫手,因?yàn)辄S方奪取f4后,可形成奇格迫手g5。然而,若黃方奪取了f4,那紅方很可能奪取了f3,此時(shí)在g列的有效迫手將是紅方的偶格迫手g4。所以,也可認(rèn)為f4不是潛在迫手。)
(3)破壞潛在迫手的方法
(一)直接堵。
輪到黃方,黃方如何打和?
一種辦法是下g4,直接把d1-e2-f3-g4這個(gè)潛在的紅方四連堵上,防止紅方得到奇格迫手f3.
(二)在迫手下面那格填子。
在上面的例子中,黃還可以下哪里?
答:f2。
輪到黃方,怎么下才能贏?
只能下f2。
①黃下f、g以外的列。則紅可以下g3形成奇格迫手f3獲勝。
②黃下g3。則紅可以下g4形成奇格迫手f3獲勝。
③黃下f2。紅不能下f3。下f4也無法對黃方造成威脅。
可在下面的網(wǎng)址驗(yàn)證。
https://connect4.gamesolver.org/?pos=444444533353556755337
(4)小測&尾聲
紅能否獲取奇格迫手g3?(注:黃不會選擇輸?shù)奶斓淖叻ǎ?/p>
根據(jù)連續(xù)子原理,紅能獲取e4、e5中的一個(gè)。
①若得到e4,則紅直接勝。
②若得到e5,將形成奇格迫手g3。
③如果黃通過占領(lǐng)g2的方式破壞潛在迫手,則紅下g3,在e列形成相鄰迫手e4、e5取勝。
情況①③只會讓黃輸?shù)母?。因此,紅可以得到奇格迫手g3。
這個(gè)例子告訴我們,很多時(shí)候,偶格迫手可以幫助我們獲取奇格迫手。
難度較大的形勢判斷題。該局面誰會贏?
根據(jù)連續(xù)子原理,紅可以獲得a5、a6中的一個(gè)。
①情況1:紅得到a5,形成奇格迫手c3勝。
②情況2:紅得到a6,形成偶格迫手c4。而偶格迫手c4讓f3成為了隱性的奇格迫手。這是什么意思呢?
c2格未落子時(shí):紅得到f3,那么會產(chǎn)生奇格迫手c3
。
c2格已落子時(shí):紅得到f3,那么會產(chǎn)生沖四,逼迫黃堵c3,然后紅下c4勝利。
因此,無論何種情況,紅得到f3就會勝利,因此可以稱f3為隱性的奇格迫手。
因此,紅勝。
可能不好理解,可在下方網(wǎng)頁驗(yàn)證。(棋盤已擺好)
https://connect4.gamesolver.org/?pos=45212241154454252453111
根據(jù)上題,你認(rèn)為此時(shí)黃應(yīng)該怎么走?
答:b5。
此時(shí)紅怎么走?
答:b4,紅的偶格迫手c2確保其能獲取c3。紅下b4后,一定能得到奇格迫手a5。
這一章以講述基礎(chǔ)概念為主。
一些進(jìn)階內(nèi)容,包括剩余子原理、填子競爭等,將在下一章介紹。