MSN 踩地雷自動分析程式

五月 18, 2005 @ 4:34 pm · Filed under Life, Life, Life, Computer Technology

踩地雷大概是 Windows 作業系統中最古老的 Game 一之了吧…
想當年還是 DOS 時代, 在第一次觸 Windows 3.0 的時候完全不知道 Windows 能幹什麼,
最常做的事應該就是把 Windows 跑起來, 然後玩接龍或踩地雷 XD

踩地雷這個古老又玩不膩的 Game 到了現在又出現在 MSN Games 裡面了,
加上好看的介面和對戰的模式和一些小改變, 剛出來的時候又再次風靡了 MSN Users…

前幾天 Monster 無聊找我玩踩地雷,
每次玩踩地雷都會沉陷在一堆數子跟九宮格中, 其實這樣的思考過程也蠻爽的…
不過從以前開始玩踩地雷時, 想到很累的時候都會想說乾脆用電腦算就好了嘛…
其實這東西運算起來不難, 只是用人腦去展這個 2D-Map 很容易讓思考的 tree 一下長的很肥,
用人腦算有時候真的會眼花撩亂 XD

所以當初 MSN 在出踩地雷 Game 的時候我一度想寫一個 auto play 的程式來跑..
不過後來第一個寫的 MSN auto player 是大約兩年前寫的 MSN 的寶石方塊 自走機,
我用螢幕顏色分析的方式, 加上用程式模擬滑鼠的點選, 配合上一點點的 AI,
玩出來的分數比一般人類的極限還多個「4~5 位數」的分數…
當初很玩流行寶石方塊, 大家都在拼高分, 結果我用程式一跑之後就沒人想玩了 XD
而且超高的分數還一直被 MSN 官方把我的分數移掉, 他們覺得那是作弊的分數 XD
有機會我再來 show 一下寶石方塊的 auto player 好了..

回到踩地雷的分析程式吧, 昨天閒來無事還真的寫了個程式去分析採地雷的地圖…
先來看看這些圖吧 (點一下看大圖!)

bomber1

bomber1

每格左下角的數字代表程式辨別從螢幕上辨別出那個 block 目前的狀態…
然後會對每個還沒有翻開的 block 進行判斷, 左上角是程式判斷出他是 bomb 的 bound 值..
100 的就代表他一定是炸彈啦, 其他在 1~99 之間, 越高代表他越可能是 bomb…
被劃上紅色叉叉的就是一定不是炸彈的 blocks…

其實還有一個功能, 就是如果你選了一個 block, 不幸他不是 bomb 的話 (這樣就輪到另一個人了),
那程式會計算出「糟糕的程度是多少」, 不過那個顯示出來整個螢幕就很花了, 所以沒打開…
不過當然不是說有這個程式就必勝啦, 踩地雷要靠運氣的成分還蠻大的…
有時候程式跟你說那個最有可能, 結果按下去卻不是炸彈…所以有時候還是會輸給人腦 @@||

然後這個程式我就沒有寫自動按的功能, 如果自動按的話好像就完全沒有樂趣了…
不過用個這個程式之後踩地雷就變的沒那麼好玩了, 只是在那邊按來按去而已,
踩地雷就是要陷入無窮的九宮格中才是王道啊~~~XD

 

MSN 踩地雷自動分析程式 - II

五月 24, 2005 @ 2:02 pm · Filed under What's it?

之前一篇文章MSN 踩地雷自動分析程式中提到了踩地雷的分析程式,
本來主要新奇的地方是可以去抓 MSN 的畫面並分析出棋盤,
而棋盤的分析就只用簡單的方式分析一下而已…
本來以為簡單的分析就足夠了, 但是感謝清池在我上一篇文章中提出了一些 comments,
似乎之前的分析太過於簡單了, 所以後來有閒的時候又做了一些分析的加強…

上一版的分析中主要是:
1. 若某格數字的周圍已知的炸彈已經足夠, 則把週圍所有未翻開的格子顯示成不是炸彈.
2. 若某格數字的周圍未翻開格數 + 已經炸彈格數 剛好是炸彈數, 未翻開的格字就顯示成確定是炸彈.
3. 對於還是不知道的未翻開的格子計算出一個 Bound (後來發現這個 bound 有問題 XD).
結果就是這樣的分析還嫌太薄弱.

後來主要加入的分析方式是:
對於每格都先假設它是炸彈, 然後用上一版的方式去分析這個假設出來的棋盤,
若發生矛盾 (炸彈過多或炸彈不足), 則這個就一定不是炸彈.

兩個版本的比較:
Example.1
Version.1:
mine-1
Version2:
mine-2

Example.2
Version.1:
mine-3
Version2:
mine-4

經過這個方式分析之後, 某些情況下可以確定為 0% 或 100% 的格數增加不少.
不過我現在在想再往下展的方式, 還有對於沒辦法確定是不是炸彈的格子做 bound 的方式,
如果有什麼想法的歡迎提出來 :)

 

http://kcwu.csie.org/~kcwu/msnmine/

引用網誌~ http://lcr.old-castle.org/

果然真的有人用機率~來寫程式XD~~~(要是我腦袋動的比程式快,那是不是我比較猛~~更

不過話說還有更猛的外掛,直接就全開了~~XD(果然是台灣人的剠根性~~不玩了~~讀書比較實在~~

kissinwang 發表在 痞客邦 PIXNET 留言(0) 人氣()