|
掃雷作為策略遊戲,需要遊戲者精確的判斷。在面對一個超大雷陣時,如何才能做到“迅風掃落葉‘?這當然需要一定的技巧,而技巧的高下之分,其實從第一步就已經開始。
Windows系統保證瞭掃雷的第一步無論點擊哪個方塊都是安全的。一名普通玩傢一上來大概會很隨意地點擊一個方塊,反正不曉得哪個是雷又肯定是安全的,點哪不一樣。但對高手來說,卻是每一步都要運籌帷幄。
在掃雷遊戲中,如果你點擊的方塊附近都沒有地雷,點擊的後果就是一片沒有雷的區域瞬間展開瞭,然後我們就可以根據區域邊緣的數字慢慢排雷。
於是問題來瞭:第一步點擊什麼位置碰到安全區域的幾率更大?是角、邊還是中間?這當然需要算一算。
金角銀邊草肚皮
首先不難看出,點擊某個方塊出現一片安全區域的條件是這個方塊的周邊沒有地雷。假設我們第一次點擊的方塊處在盤面中間的位置,那麼就需要它周圍的8個方塊都沒有雷;如果方塊在盤面的4條邊上,則是5個方塊;在角上是3個方塊。
假如我們第一次點擊的方塊在盤面中間,那麼出現安全區域的概率就等於它周圍8個方塊都沒有雷的概率(暫且不論這個安全區域可以有多大)。如下圖所示,令N表示盤面上格子的總數,M表示地雷的個數,前面說過因為第一次點擊的一定不是雷,所以這時候場上還剩N-1個格子和M個地雷,於是圖中右下角那個格子不是雷的概率就是(N-M-1)/(N-1)。
類似地,當前場上還剩N-2個格子和M個雷,所以下一個格子依然不是雷的概率是(N-M-2)/(N-2)。
依此類推,最後可以發現,第一次點擊的格子,其周圍沒有雷的概率是:
對於邊和角的情況,推導的過程完全類似,隻是上述乘積的項數不一樣——邊上隻有5項,角上隻有3項。
根據遊戲的設置,將N和M的取值代入這個表達式中,最終可以得到三種難度下三種策略各自出現安全區的可能性大小:
所以得出的結論是,“從角上開局‘!
安全區有大有小
當然,看到這裡你可能有個疑問,雖然說第一步點擊角出現安全區的概率最大,但安全區域的面積也有大有小。一個直觀的想法是,雖然角上出現安全區域的可能性最大,但其能擴展出的面積也最受限制,而在中間的位置,雖然安全區出現的可能性最小,但是一旦出現,這個區域可以向四周發散,能擴展出的面積也隨之增大。這兩個因素相互制約,究竟誰能最終勝出?
我們轉而考慮另一個指標,也就是某一個方塊被點擊後出現的安全區域的平均面積。這個指標在概率論和統計學中稱為期望值。但因為安全區域面積的期望大小很難從理論上推導出來,所以在這裡我們利用瞭蒙特卡羅模擬的辦法來對它進行計算。其主要流程就是在電腦中模擬很多次掃雷的過程(比如10萬次),然後把每一次的結果記錄下來,最後做一次平均。
下圖是初級模式下遊戲開始第一步,點擊每個格子出現安全區域的期望面積,可以看出,顏色越淺的地方安全區域面積傾向於越大,在圖中即為四個角的位置,平均下來一次可以擊出約16個格子。最“差‘的地方則是從外向裡第二圈的四個頂點,僅為10個格子左右。這其實也符合記錄。初級掃雷的世界紀錄是1秒,世界上很多人達到瞭這一點。在1秒的時間裡完成初級掃雷其實屬於碰運氣,最可能的方法就是直接點擊4個角的方塊。
類似地,中級和高級的圖如下所示:
其中顏色最淺的地方都指向瞭四條邊的中心。
所以,如果考慮的是連擊區域的大小,那麼在初級模式下還是應該優先選擇四個角的位置;而對於中級和高級模式,則是邊的中心其大小的期望值最大。
模擬結果存在不足
然而上面用蒙特卡羅方法得出的結果卻並不就是我們想要的答案。計算機模擬的隻是第一步點擊哪裡出現安全區域的期望面積最大,但實際上,第一次點擊出現的安全區域面積越大,下一次點擊未知區域出現安全區域的概率也就越小,區域面積也會越小。如果隻是貪圖第一步撿一個大便宜,而讓之後的操作寸步難行,那未免得不償失。
另一方面,並非每一個掃雷局都是有解的,有時候根據現有的局面,並不能夠判斷最後剩下的幾個方塊哪個是雷哪個不是,例如下圖這種情況,剩下兩個方塊各自有雷的概率都是50%。
出現這種情況,除瞭因為地雷佈局的原因,還和遊戲者的操作有關。試想辛辛苦苦大半天,最後卻隻能“謀事在人成事在天‘,未免太虧。而如果第一步就點擊角落,自然就降低這種局面出現的概率。
對於掃雷遊戲來說,首要目的是要排出全部地雷,其次是盡量縮短遊戲時間。根據前面的推算,我們知道,首先點擊角無疑會讓這個遊戲變得更為簡單和容易,並且也不會為之後的操作帶來什麼麻煩,作為一名技術流高手,第一步首先點擊角落的方塊,無疑是最保險和高效的。
|