踩地雷 AI 是什麼?先看它能幫你做什麼
踩地雷 AI(Minesweeper AI,也常稱掃雷 AI)會根據已揭露的數字推理安全格,在無法確定時評估踩雷機率,決定下一步。 求解這類問題的程式也稱為 Minesweeper solver;它可以使用邏輯與機率計算,不一定每一步都需要神經網路。
我做的開源專案使用 V44 混合代理:求解器先處理能證明的答案,神經網路只在特定的非精確局面協助判斷。你可以看它自動解盤,也可以自己玩完後,用重播分析回頭檢查某一步的風險。
這篇先回答三個問題:
- AI 怎麼知道哪一格安全? 從數字約束推理,再比較符合線索的雷位配置。
- AI 為什麼還會輸? 有些一般盤面必須猜,低踩雷機率也不等於零風險。
- 加了模型就會更強嗎? 這次 5,000 局配對實測只多贏兩局,還不足以支持換版。
想直接操作,可以前往 Minesweeper AI Windows 下載與使用說明。以下會先交代我做這個專案的原因,再用例子拆解它的判斷方式。
為什麼做一個踩地雷 AI?
玩踩地雷時,最難的常常不是看懂一個數字,而是走到「好像只能猜」的那一步:還有線索沒看出來嗎?哪一格比較安全?如果最後踩雷,究竟是選錯,還是運氣不好?
從小就知道踩地雷,也知道最簡單的規則:已揭露的數字,代表周圍八格有多少顆雷。但知道規則之後,我其實還是不太會玩。
直到 2024 年下半年,因為租屋處網路不穩定,行動網路訊號也不好,才開始玩踩地雷打發時間,之後就上癮了。開始認真玩的一年裡,我主要追求的是 3BV/s,也就是衡量解盤速度的指標。對我來說,一旦刻意顧及點擊效率,速度就容易慢下來;到現在還是很難兼顧兩者,效率紀錄反而常常是在沒注意時打破的。
雖然最好成績的排名還在幾萬名之後,但看到自己的 3BV/s 從 0 點多,進步到連地獄難度的無猜模式(整盤可以靠邏輯解完)都能達到 1 點多,還是很有成就感。當每個模式都成功超過 1 時,甚至有一種「我是不是已經把這遊戲玩通關了」的感覺。
玩到現在,我主要靠經驗記住不同局面的雷位規律,讓自己解得更快。但還是常遇到看不出解法、只能猜的時候。當時剛好在做神經網路模型的專題,便萌生了做一個踩地雷 AI 的想法:希望它能兼顧速度與點擊效率,還能提高勝率。
這是最初想達到的目標。實際做下去後,我也發現速度、效率與勝率需要分開驗證,不能因為加了模型,就認定三者都會提升。
我做的踩地雷 AI,就是圍繞這些問題逐步發展的。目前使用的版本叫 V44。它會先從數字推理,確定有安全的位置就直接走;在特定的資訊不足局面,才讓訓練過的模型協助估計風險與選擇落點。
想看對應的 Python 程式分工、訓練資料與重播實作,可以再讀 Minesweeper AI 求解器與模型開發紀錄。
一般模式與無猜模式,從第一格開始就不同
以 minesweeper.online 為例,一般模式由玩家自己選第一格,可能只打開一個數字,也可能展開一片空白區;無猜模式(NG)則會用綠色 X 指定起點。這是玩起來最先看見的差別。
但「第一步開出不只一格」和「整盤不用猜」是兩個條件。官方對 NG 的說明是:從綠色 X 開始,就能在不猜雷的情況下完成整盤。 保證不只到第一步為止。Minesweeper Online 官方規則
所以,一般模式就算第一格開出一大片,後面仍可能遇到無法判斷的二選一;NG 從指定位置開始,則保證有不必冒險的解法。看不出下一步,可能是還沒找到需要的推理。
本機 GUI 的「首點展開空白區」只實作了第一步的保護:讓首點是 0,連同周圍安全格一起打開。它沒有 minesweeper.online NG 的整盤可解保證,不能因為第一步的 reveal > 1,就把本機盤面稱為無猜模式。
至於「允許猜測」,控制的是 AI 遇到難局要不要繼續冒險;關掉後會停下,棋盤本身沒有改變。「無旗玩法(NF)」則只是不用旗子標雷,與以上兩件事不同。
踩地雷求解器如何從數字推理安全格?
踩地雷的數字,代表周圍八格總共有幾顆雷。例如一個「1」旁邊只剩一個沒打開的格子,其他鄰格都已經確認安全,那最後一格就必定是雷。反過來,如果旁邊的雷已經全部確認,剩下的格子就可以安全打開。
AI 也是從這種規則開始,但它會一起考慮多個數字的關係。有些格子單獨看不出答案,將相鄰的線索放在一起,才能排除不可能的組合。
V44 裡負責這件事的部分叫「求解器」。可以把它理解成一個認真檢查線索的工具:哪些雷的位置符合數字?哪些配置互相矛盾?如果所有可能配置裡,某格都沒有雷,那一格就能確定安全。
已經能證明安全時,就優先採用推理結果。
其實光靠求解器,就已經能解出很多我看不出來的局面。我也會回頭記住這些規律,當成自己練習的素材。
神經網路什麼時候才會參與解盤?
有些盤面真的沒有必定安全的下一步。有些則是可能的雷位組合太多,在設定的計算範圍內,還沒辦法把它們全部算完。
這兩件事不一樣。如果求解器已經得到精確的機率,V44 會沿用那個結果;只有在「沒有可證明安全的動作,而且結果還不是精確推論」時,模型才有機會介入。
所以 V44 比較準確的定位,是一套「求解器為主、神經模型為輔」的 AI 系統。V44 是整套決策設定的版本名稱,目前使用的是 V40 的模型權重,並不代表從頭訓練了第 44 個網路。
| 目前知道什麼 | V44 怎麼做 |
|---|---|
| 某格一定安全 | 優先打開安全格 |
| 沒有安全格,但能算出精確機率 | 依精確推論選擇 |
| 沒有安全格,機率也只能估計 | 結合求解器估計與模型判斷 |
模型學的是從已經看到的棋盤線索,估計未開格的風險;部分符合條件的局面,也會參考不同選擇走到最後的結果。它沒有遊玩中棋盤的隱藏雷位,不會先偷看答案再下棋。
實際使用模型的機會也確實不多。在一批高級與地獄各 1,000 局的測試裡,6,101 次猜測中,有 5,799 次由求解器算出的精確機率決定,只有 302 次用到神經模型,約占猜測的 5%。若把安全開格與首點一起算進去,該批約 39 萬次操作中,模型參與的選格不到 0.1%。
這些數字只代表這批「首點展開空白區、不插旗」的測試,不是每種玩法的固定比例。它也提醒我,現在大部分表現來自求解器,不能把整套系統的勝率都算成神經網路的成果。
關閉猜測時,自動遊玩找不到可證安全的動作就會停下,不會讓模型接著猜。程式也不會每下一步就問聊天機器人:求解器與神經網路都在本機運算。
風險比較低,也不代表一定贏
假設兩個位置,估計踩雷機率分別是 10% 和 20%。只看眼前這一步,10% 的位置比較安全,但它仍然可能踩雷。
而且,一步安全與整局獲勝也不完全相同:某個落點活下來後,可能依然沒有新線索;另一個落點則可能打開一片區域,讓後面比較容易推理。這也是為什麼我除了關心雷率,也研究不同選擇最後能不能贏。
不過,「這步打開很多格」是走完之後才知道的結果,不能直接當成它原本就比較好的證明。模型的判斷,應該用落子前能知道的資訊來評估。
勝率實測:5,000 局比較,模型微調有用嗎?
我後來試著改良一件事:當模型有機會參與猜測時,能不能更會挑落點,讓整局比較容易贏? 這次只微調模型裡負責選落點的部分,求解器和預測雷率的部分都保持原樣。微調後的版本,先當成測試用的候選,沒有直接取代目前使用的 V44。
準備資料的方法是先讓 V44 玩 2,000 局,再挑出部分需要模型協助的局面。例如,同一個局面有 A、B、C 三個候選格,就把遊戲狀態複製三份,分別點一格,再讓 AI 各自玩到結束。這樣才能比較「改點另一格,這次會不會得到不同結果」。
這是另外執行的訓練資料收集工具,下載版的重播介面目前不能這樣試走。不同分支的勝敗也只代表這次模擬結果,不等於已經知道各個落點真正的長期勝率。
訓練後,我先檢查模型對保留局面的勝敗預測。預測與實際結果之間的誤差變小了一點,但它選中能贏的分支數量沒有增加。也就是說,預測分數有改善,選擇本身卻還沒有明顯進步。
接著再準備 5,000 張沒有用來訓練的新棋盤。原本的 V44 和微調後的候選各玩一遍,每一對都使用相同棋盤與規則,結果如下:
| 版本 | 贏了幾局 | 勝率 |
|---|---|---|
| 原本的 V44 | 2,189/5,000 | 43.78% |
| 微調後的候選 | 2,191/5,000 | 43.82% |
五千局只多贏兩局,還不足以確認改良有效,所以保留原本的 V44。 這次實驗沒有證明微調後更會贏,也沒有證明神經模型完全沒用;它比較的是兩個都使用模型的版本,不是「有模型」對上「沒有模型」。
詳細的資料數量、訓練方式與統計檢查,放在 技術開發紀錄。對一般使用者而言,這次實驗最直接的結論就是:目前下載到的仍是原本選定的 V44。
為什麼不能只看一個勝率?
看到 43.78%,很自然會想問:這樣算強嗎?
需要先看它玩的是什麼盤面。棋盤大小、雷的密度、第一步只保證安全,還是保證展開空白區,都會改變難度。上面的數字來自這次特定條件的高級與地獄盤配對測試,不能當成所有難度的通用勝率。
專案也保留了另一組既有獲勝無猜重播的測試:1,696 筆都成功解出。但那批資料原本就是篩選過的無猜勝局,並不表示 V44 遇到任何棋盤都能百分之百獲勝。
目前還沒有完成與外部最強求解器的同條件比較。我比較希望透過這個專案,把「怎麼判斷、在哪裡有效、證據到哪裡」說清楚,讓結果有可以討論的基礎。
下載踩地雷 AI,透過重播查看每一步的機率
我也把這套 AI 接到 Windows 踩地雷程式裡。可以自己玩到一半交給它,或看它自動解盤。程式也有重播功能,結束後可回到某一步,按「分析這一步」查看該動作的落子前雷率。
目前重播主要用來檢查已經發生的動作,不能在歷史棋盤上改點另一格,再比較後面會怎麼走。分析會區分落子前的風險與操作後的實際效果;一步踩雷未必代表判斷差,一步剛好沒踩雷也未必代表選得好。
下載 Windows 公開測試版,完整解壓縮後執行 MinesweeperAI.exe 即可,不需要另外安裝 Python 或準備 NVIDIA 顯示卡。模型僅在本機運算;保存遊玩紀錄也不會自動訓練或偷偷更新模型。
想接著往下看,可以從這兩個地方開始:


COMMUNITY
聊聊你的想法
目前僅限登入 Discord 的伺服器成員可以留言,顯示名稱會使用你在伺服器裡的名字。
正在載入留言……