MSN 寶石方塊五千萬分?
MSN 寶石方塊自走機是我在兩年前, MSN 寶石方塊 Game 剛出來不久的時候寫的.
那時候寶石方塊剛出來的時候, 真的是一天到晚都在玩這東西,
不過玩久了之後也會累, 所以那時候就想說要來寫一個自動玩的程式…
當初有很多朋友ㄧ起在拼寶石方塊, 大家都會在比誰誰誰創了最高紀錄,
我在玩了一陣子之後寫了這個自動玩的程式, 跑出了一個完全不可能的分數…
後來很多人就不玩了~~ 因為是人都不可能超越的 XD
而且之後似乎分數太離譜, 以至於我寶石方塊所有的戰績都被 MSN 官方砍掉了 XD
(X咧~~連我之前正常玩了幾百盤的紀錄都不見了..)
後來我不爽又去跑一次, 再弄一個超高的分數上榜, 結果沒過多久又被砍掉了 @@||
然後有一陣子沒有再去玩寶石方塊了,
最近因為在寫MSN 踩地雷的程式又想到它, 所以就拿出來玩一下..
MSN 的寶石方塊有兩種遊戲模式:
一種是不限時間, 但是玩到沒有方塊可以移的時候就 Game over…
另一種是有時間倒數, 當時間倒數到底就會 Game over,
可是玩到沒方塊可以移的時候他會清空給你一盤新的繼續玩…
但是時間倒數的速度會隨著遊戲的等級越高而越來越快,
到後面得要把方塊消快一點時間才會增加…所以到後面很容易 timeout 而 Game Over.
後來我發現的是, 要玩不限時間的方式又要玩到高分有點困難,
因為棋盤要都有路可走, 除了好的移動方式之外, 還要靠運氣!
一般來講玩這種模式的話分數都有個瓶頸, 很容易就莫名奇妙沒得移動而死掉..
而且要設計好一點的演算法讓他一直有路的話需要花比較多心血,
加上計算的時間也會比較長, 所以我不用這個模式去跑…
所以我採用的是第二種模式, 也就是限時間但是不用擔心沒有方塊可以移的模式.
反正電腦的運算速度就是快, 所以我不怕他時間倒數,
而且在分析移動方式的時候也不用一定要最佳解, 只要較好的解的就可以了,
反正沒得移的時候他會給你一盤新的 XD
我這邊也沒有用什麼精心設計的 AI 去玩它, 我只是用簡單的分析法則:
對於每個可移動的方式 (移動後會造成消去) 給予一個 bound, bound 的計算方式為:
(1).
bound1 為此進行此移動後可造成的棋盤最大「可消去連接」的方塊數,
這可能是橫向也可能是縱向, 若有橫向跟縱向的組合, 例如十字型或 L 型的連接,
則此 bound1 為縱向消去方塊去和橫向消去方塊數相加.
(2).
經過此移動, 可消去方塊消掉後, 計算消去的位置上面的方塊掉下來後的棋盤,
未知的部份 (也就是上方補進來的新方塊) 假設為沒有方塊,
然後把這個棋盤進行步驟 (1) 的計算, 並把 bound 乘兩倍後成為 bound2.
最後此移動得到的 bound 值為 bound1+bound2.
也就是多計算一層連鎖消去, 連鎖消去的方塊 bound 值會乘兩倍, 所以連鎖越多值越高.
(3).
並且在所有可移動方式中, 依照下面的項目找出最大值的來移動 (若相同則比較下一項):
a. bound (bound1+bound2).
b.連鎖消去後, 最後 stable 棋盤中可移動的數目.
c. 連鎖消去後, 最後 stable 棋盤中「兩個同色方塊連接在一起」的組數.
我會只算一層連鎖的關係是因為經過了一層連鎖之後,
棋盤內剩下確定的方塊差不多會只剩一半了, 其他都是後來上面補進來的方塊,
這些補進來的方塊我們沒辦法知道他是什麼顏色的, 所以多算太多應該也沒什麼用.
用程式抓取螢幕上的畫面, 分析出每個位置各是什麼顏色的方塊,
在依照這些 rules 去計算要怎移動棋盤中的方塊, 結果就成為寶石方塊自走機了.
另外我沒有設計更聰明的演算法有幾個原因:
1. 因為要求速度要很快, 如果演算法複雜速度不快的話很容易就 timeout 掛掉.
2. 當連鎖消去很多的時候很容易就晉級, 晉級的時候整個棋盤幾乎會被 bonus 消光,
如果這時候用了複雜的演算法, 去設計「可以造成連鎖的排列方式」也只是浪費掉而已.
下面有一些在玩的過程中的影片 (使用 DivX 格式壓縮):
Diamond.DivX.15fps_1.avi (9,972 KB) 剛開始的時候
Diamond.DivX.15fps_2.avi (18,976 KB) 七百萬分的時候
Diamond.DivX.15fps_3.avi (20,512 KB) 兩千多萬分的時候
我前幾天測試了一下, 看程式最高能玩到多少分,
結果後來跑到五千多萬分的時候我手賤不小心按到滑鼠, 結果程式變成抓不到畫面,
接下來在三秒鐘內下面的時間馬上倒數到底, 然後就掛掉了 XD
後來我也懶的再去跑一次, 因為這次跑到五千多萬分就跑了 12 個多小時…….. @@||
我本來還期待它的畫面會破表的 XD


光 Said,
六月 5, 2005 @ 9:30 pm
好厲害,不過我看影片發現它有時候會跑一些無意義的步驟耶?(我完全不懂程式設計。)
alan Said,
六月 5, 2005 @ 9:58 pm
我想要這外掛!!send俾我pls
kamaze Said,
六月 5, 2005 @ 11:23 pm
被發現會亂走了 XD
會亂走的原因是因為他棋盤的方塊顏色有判斷錯誤.
本來我第一個寫的版本是完全精確判斷, 100% 正確.
而且要每一個方塊都判斷出來他的顏色之後才會去思考並移動.
後來發現這樣不行,
因為消掉方塊之後消掉的位置會出現得分然後往上慢慢消失,
那個分數的字樣會影響到顏色的判斷,
還有方塊消掉之後, 上面的方塊往下補位的時候也會有影響.
這樣會造成程式的 delay,
到後期的時候很容易 timeout 而 Game over.
所以後來改成模糊判斷的方式,
有時候會被分數的字樣影響而顏色判斷錯誤,
但是大致上來講效果比之前的第一版來的好, 速度也很快,
反正移錯不會有太大的影響 :P
alan Said,
六月 6, 2005 @ 5:39 pm
係咪係有第二版??我真係好想要求!
KAN Said,
六月 7, 2005 @ 10:51 pm
我都想要這個外掛~~能否給小弟一用~
Allen Said,
六月 9, 2005 @ 12:23 am
我也想试一试 :p
Tony Said,
六月 10, 2005 @ 12:25 am
看來這很多人想要喔…
我也想要ㄟ…
jay Said,
六月 10, 2005 @ 1:48 am
跟大家一樣..我也想要這個程式來玩玩 XD
不曉得作者是否願意把他的心血讓我門來玩 ^^”
alex Said,
六月 15, 2005 @ 11:52 pm
真好奇那個程式~真想拿來玩玩看~
Blowfish Said,
六月 16, 2005 @ 10:10 am
真的很有趣….
想請教一下程式運作的原理, 怎麼去控制MSN呢?
或者能否提供一些參考資料呢….
sandy-h Said,
六月 17, 2005 @ 10:37 pm
這遊戲去年暑假玩過
很好玩
本來是free
不知怎麼就無法繼續嘞
我家小朋友也很會玩喔
Talk World Said,
六月 18, 2005 @ 10:47 am
很神奇呢
小弟很有興趣知道這玩意是用什麼語言寫的
又是如何去控制 MSN?
是否類似掛網程式的 Robot Script?
希望大大可以分享一下~ 密密我也可以 ^_^
thy08082003 Said,
六月 23, 2005 @ 5:46 pm
你電腦專長的確很厲害..設計出這程式…但我跟你說..我打標準制的..打1266990….其實只要邏輯觀念夠清楚…打5000萬分不是不可能…要有耐心..因為當初我設目標是100萬分…當達到後..只想快結束..讓分數秀上去..所以當破百萬時就都亂按..不知不覺就又打了20幾萬…標準制..每過一關分數加5分..(每消3個方塊第一關10分.第二關變15分)過關就是紅利集滿..當我120幾萬分時..每消3個方塊就有400多分…所以可算出我到底過了幾次紅利….標準制的運氣成分只佔百分之五..˙因為只要方法正確…頭腦清楚..根本打不死…
Joyce Said,
六月 27, 2005 @ 12:40 am
好厉害。
我看不懂这个算法。
howl Said,
七月 4, 2005 @ 1:14 am
太神奇了
這大概花了不少時間吧?
是用c寫的麼?
想請問是如何抓取畫面並且如何處理資料的呢?
bluewaysu Said,
七月 5, 2005 @ 8:20 pm
我也要這ㄍ程式來玩玩看
拜託囉^^
Mulder Said,
七月 8, 2005 @ 6:14 am
我有嘗試寫過這種程式…. 用 VB 無奈 coding能力不足
能給我嗎 ?
我也想玩看看….
如果能有 source …. Orz ….
那是最好的了….
GARY Said,
七月 10, 2005 @ 3:53 am
這東西實在是太利害了…..我超想要的…..可以給我嗎???拜託
kathy Said,
七月 11, 2005 @ 3:23 pm
我十分想要這個外掛呀,你可以給我嗎?
azywu Said,
八月 4, 2005 @ 11:57 am
我也想要試試看這個有趣的東西
一看就知道是個高等技巧
如果能夠 請分享給我 謝謝
space traveler Said,
八月 5, 2005 @ 1:24 am
可以傳送給我嗎!?
感覺很鮮的東西
謝謝囉!!
999 Said,
八月 5, 2005 @ 10:36 pm
我也想要這個程式…please~~~
emptyhank Said,
八月 6, 2005 @ 4:39 am
可以分享這個程式到我信箱讓我玩看看嗎
謝謝,拜託你了
你真的很厲害
hcceric Said,
八月 7, 2005 @ 8:00 am
可以分享這個程式到我信箱讓我玩看看嗎
謝謝,拜託你了
hcceric Said,
八月 7, 2005 @ 8:00 am
start@ms19.url.com.tw
SHIN Said,
八月 12, 2005 @ 11:26 am
我也想要這程式..想跑看看…
gshinyih@pchome.com.tw
謝謝哦!
play Said,
八月 16, 2005 @ 2:14 pm
我也想要 感恩
play Said,
八月 16, 2005 @ 2:15 pm
我也想要 感恩
arluse@yahoo.com.tw
SHIN Said,
八月 23, 2005 @ 12:44 pm
您好!我想請問一下要您是用什麼語言寫出這個自走機!
提供一下是何種語言即可!我想自己試看看!謝謝!
Vanenssa Said,
八月 24, 2005 @ 12:17 am
牛魔王
無意中看到你的blog
也看到這篇…
我哥對這很有興趣
順便寄給我吧
^^
sworddish Said,
九月 1, 2005 @ 12:32 pm
妳好,我正在做機器學習相關的研究,對這個玩意很感興趣,可以一起討論啊。
另外,可否提供源碼參攷一下,多謝~
RCC Said,
九月 7, 2005 @ 2:26 am
我也要啊~謝啦
小怡 Said,
九月 14, 2005 @ 9:56 pm
麻煩!!可否也給我一份
夜夜狂 Said,
九月 19, 2005 @ 7:34 am
我比較想知道
怎判斷出來他的顏色之後才會去思考並移動
能交流一下嗎@.@
夜夜狂 Said,
九月 19, 2005 @ 7:35 am
al313072@msn.com
阿 逼逼 Said,
九月 22, 2005 @ 5:00 pm
可以寄給我玩看看嘛??
謝謝你唷
你是大好人^^
KAN Said,
九月 23, 2005 @ 12:28 am
可否給小弟見
Sofia Said,
九月 24, 2005 @ 1:38 pm
人家也想要這個程式來玩玩看, 謝謝囉!!
馨會 Said,
九月 25, 2005 @ 9:19 pm
我們每次玩…都不知道應該怎麼開始遊戲…若有人知道…請寄信到我ㄉ信箱…或是與我聊天(yahoo)
Kevin Said,
九月 26, 2005 @ 9:42 pm
可否也給我ㄧ份呢~拜託您了~謝謝寶石方塊很嫩咖的人~拜託了^^
Kevin Said,
九月 26, 2005 @ 9:44 pm
不好意思~我的MAIL:ngc.ngc@msa.hinet.net
Ray Said,
九月 28, 2005 @ 12:21 am
我也想研究一下這程式,是c寫的嗎
yoyoshi0422@gmail.com
anfernee Said,
九月 29, 2005 @ 12:25 pm
有人可以給我嗎 我也想試試看ㄟ 怎麼外掛交我一下
anferneeguerrero@yahoo.com.tw
5847 Said,
十月 3, 2005 @ 9:14 am
可否給小妹試試呢?
joe Said,
十月 5, 2005 @ 7:53 pm
這位大大真的是太厲害了
是用C寫的ㄇ 還是我朋友說的EZ
不知道 你可不可以給我那個程式試試看
感謝萬分
a18903036@yahoo.com.tw
GARY Said,
十月 10, 2005 @ 1:01 am
我也想研究一下,請寄給我好嗎
salt Said,
十月 10, 2005 @ 12:12 pm
可以寄給我ㄇ 很想研究一下 s740310@yahoo.com.tw
Skywalker Said,
十月 11, 2005 @ 10:23 pm
give me plz~
cfsscfsshk@yahoo.com.hk
elsa Said,
十月 18, 2005 @ 6:10 am
可以將此款遊戲的單機版寄給我嗎??
主旨為:寶石方塊
我就知道了
3Q
鈴羽 Said,
十月 22, 2005 @ 12:42 am
怎麼一大堆人在問說要這個要那個,
這是別人所寫的BLOG日誌耶!!!
又不是下載天地或什麼msn winks教學站!!
LCR大大寫這篇文純粹解釋他自己所寫的程式的使用過程,
再說,他也簡單解釋了他的程式中的2個關鍵的計算流程。(bound)
你們這堆人別一直坐在椅子乞求要什麼外掛程式吧
與其花那種時間來等,倒不如自己學集如何寫一個程式吧!
自行去Google 尋找你想要的資料吧-_-+
反正網上也一大堆教學站
雖然我寫程式不是這麼棒,但是至少我也不會乞別人的心血作品=”=
Gea-Suan Lin's BLOG Said,
十月 30, 2005 @ 5:13 am
機器人大戰
期末考快到了,所以就會出現這種東西:XD
MSN 寶石方塊五千萬分?
MSN機器人
果然期末考快到了戰鬥力都特別高 :p
…
Rabbit Said,
十二月 7, 2005 @ 7:31 pm
我也想要這程式..想跑看看…
Rabbit Said,
十二月 7, 2005 @ 7:32 pm
chanuentung@hotmail.com
Cornelius Said,
一月 9, 2006 @ 3:11 am
我也想要這個程式 想跑跑看 謝謝
cornelius1110@msn.com
Cornelius Said,
一月 9, 2006 @ 3:12 am
更正 信箱打錯了XD
那個沒再用了
cornelius1110@yahoo.com.tw
感恩
Age Said,
一月 11, 2006 @ 11:53 am
我也想要拜託囉~~
小朱 Said,
一月 14, 2006 @ 5:33 am
原來可以用程式破的﹐難怪會這麼高分。高手高手~~
Tony Said,
一月 17, 2006 @ 12:44 am
can u give it to me
tonywcm2003@hotmail.com
Margaret Said,
二月 1, 2006 @ 7:28 pm
我也想了解一下這個程式,可以寄給我學習嗎?感謝!!
margaret1018@yahoo.com.tw
小虎 Said,
二月 5, 2006 @ 7:05 pm
我也想玩可以寄給我ㄇ
m10101112@yahoo.com.tw
Darren Said,
二月 17, 2006 @ 2:53 pm
小弟這個msn機器人的程式也很有興趣
程式邏輯已經有寫出來
不過好奇的是,是怎麼把msn裡面的畫面做解析做處理的?
方便的話,是否可寄一份給小弟
感謝您
mispcboy@yahoo.com.tw
timothy Said,
二月 21, 2006 @ 2:17 am
可否提供主程式做測試用途^^??
感謝喔~~~
timothymrline@hotmail.com
Elvin Said,
二月 23, 2006 @ 11:36 pm
Give me again!
rct3twins@hotmail.com
Tobby Said,
二月 25, 2006 @ 1:01 am
u1257@hotmail.com
雖然有點不好意思 … 請問可以順便寄給我嗎?
我最近在研究python(大蟒蛇?) …
謝謝…
salt Said,
五月 21, 2006 @ 10:06 pm
請問可以把程式寄給我ㄇ 謝謝
方塊技工 Said,
五月 23, 2006 @ 7:10 am
可否send呢個program比我, 我都好想試下呀^^
thx!!
ka_chi_lai2004@yahoo.com.hk
salt Said,
五月 24, 2006 @ 11:19 am
請問可以把程式寄給我ㄇ 謝謝
s740310@yahoo.com.tw
小辜 Said,
六月 6, 2006 @ 9:31 am
可否也讓小弟我試試看可以的話請寄來我的信箱謝謝
小樹 Said,
六月 7, 2006 @ 9:41 pm
我也想要耶
好特別的程式~~~~
怎麼做的 c++寫嗎
我要研究看看
小箏 Said,
六月 12, 2006 @ 3:40 am
PK旋轉泡泡球~
i will waiting for u !!
liu4319@hotmail.com
Tony Said,
六月 16, 2006 @ 12:06 am
這各程式可以讓大家看看嗎?
好想要喔!!
cheng_tony701212@yahoo.com.tw
能寄給我嗎?
nana Said,
六月 28, 2006 @ 6:25 pm
有辦法能讓寶石方塊單機板嗎@@?
找不到人開局的時候,真想一個人玩~.~
吹水咩 Said,
七月 9, 2006 @ 2:30 pm
吹水咩
S~B Said,
八月 26, 2006 @ 4:30 pm
挖~居然有人寫的出來 只能說您太神了
可以麻煩給小弟您的程式嗎??
感謝大哥您拉~~!
高比仔 Said,
九月 4, 2006 @ 4:56 pm
good…..我也想試一下!^^
子暘 Said,
十月 3, 2006 @ 1:32 am
不知道這位前輩可以把這外掛分享給我嘛
因為我都破不了千萬
可能是我資質不夠吧
所以希望您能寄給我 並敎我怎ㄇ運用好嘛
謝謝你 tommy02130104@yahoo.com.tw
周浚佑 Said,
十月 7, 2006 @ 5:40 pm
我也想要喔`
dereklei929@gmail.com
蕭吉川 Said,
十月 30, 2006 @ 1:06 am
nil0116@hotmail.com
大大感激您
我想了解一下這程式
Vulcan Said,
十一月 11, 2006 @ 10:58 pm
labanchen@gmail.com
可以分享一下這個程式嗎
我也想研究一下
TSUBASA Said,
十二月 23, 2006 @ 1:17 pm
請問~?大大可以分享給我這程式嗎?[看到好多人伸手,不知道大大有沒有空給...]
YiYi Said,
一月 1, 2007 @ 6:34 am
Hi!
I am writing from the USA. Here we can play Bejeweled 2 for money online. Can you tell me a few tricks that will make me play really well? You can write in Chinese, I can read Chinese, I just don’t have Chinese software here to type it. Thank you!
Yiyi
COLD Said,
一月 15, 2007 @ 11:45 pm
哇 ~ 寶石方塊自走機~我也要
xac_cold@yahoo.com.tw
小和 Said,
一月 18, 2007 @ 2:14 am
這位大大..也可以給我嗎?謝謝~~
十二蔞分的感謝…好想看看!!!~~~好奇中~~~~
土豆人 Said,
三月 9, 2007 @ 11:34 pm
最近在玩寶石方塊,看到大大你的..5000萬分程式,能不能跟你要來玩玩看ㄋ?我真ㄉ對這ㄍ程式很有興趣,不知道大大能不幫寄給我呢?還有你怎麼會寫這種程式的阿~好犀利
小歪 Said,
四月 3, 2007 @ 11:47 pm
可以分享嗎?
文戊冠冕 Said,
四月 25, 2007 @ 1:19 pm
我也想要。发给我好吗
ztaco Said,
八月 8, 2007 @ 6:12 pm
大大請寄一個給我,謝謝
kei Said,
九月 4, 2007 @ 2:16 am
能寄一個玩玩嗎?
藤蔓 Said,
十月 15, 2007 @ 1:17 pm
也分享給我 拜託了
kam輝 Said,
十一月 11, 2007 @ 10:49 pm
拜託大大也給我一個吧
boy001122@msn.com
music Said,
十二月 21, 2007 @ 7:03 pm
可以分享一下麻>”<
信箱:musicgod1124@yahoo.com.tw
mike Said,
一月 3, 2008 @ 12:42 am
還有得分享嗎?
mike Said,
一月 3, 2008 @ 12:43 am
還有得分享嗎?我也想用..
may Said,
二月 1, 2008 @ 1:47 am
可以分享嗎麻煩妳
leon Said,
三月 4, 2008 @ 4:53 pm
請問還有程式可以分享嗎?@@?
我也好想要試試看..
希望大大能分享一下^^
謝謝~
我信箱是:moo5123@yahoo.com.tw
^^ Said,
三月 28, 2008 @ 12:28 pm
崇拜!!拜託!!不介意ㄉ話…..寄給我吧!!100%ㄉ想要!!
黃人帥 Said,
四月 3, 2008 @ 7:13 pm
我很瘋這個
希望也能寄一個給我
麻煩你了 我誠摯的獻上五千萬個拜託…
黃人帥 Said,
四月 3, 2008 @ 7:14 pm
feng58624@hotmail.com
feng58624@hotmail.com
feng58624@hotmail.com
我的信箱 我一定每天都來收信 期待你寄給我
Dolphine Said,
四月 30, 2008 @ 11:13 am
想要人家分享的理由是什麼?
為了拿高分?—>自己打比較有成就感吧
為了炫耀說”你看我有這個”?—>又不是你自己寫出來的程式
為了交流?—>怎麼會叫人家把程式給你看呢,那是人家的心血耶
內行看門道的人,應該是討論交流、互相切磋吧
Ruki Said,
六月 16, 2008 @ 11:44 pm
我也想要這個外掛..有沒有人可以給我?!
sai_kit87@hotmail.com
Rudd Said,
八月 12, 2008 @ 4:40 am
我也想要這個程式
最近瘋狂迷上這個遊戲
有沒有人可以給我
ruddyao@hotmail.com
5129F Said,
九月 12, 2008 @ 11:28 pm
可以分享一下麻
最近瘋狂迷上這個遊戲
5129F Said,
九月 12, 2008 @ 11:29 pm
可以分享一下麻
最近瘋狂迷上這個遊戲
login00.tw@yahoo.com.tw
JIM Said,
十一月 25, 2008 @ 10:49 pm
我也想要喔
不知可以分享給我
jim762895@yahoo.com.tw
jim762895@yahoo.com.tw
toto Said,
十一月 26, 2008 @ 7:48 am
我也想要 能寄給我嗎
long Said,
三月 8, 2009 @ 12:09 pm
我也要可以媽? 可否寄給我一份呢?
wellwind Said,
六月 10, 2009 @ 1:55 am
您好,我最近也想寫寶石方塊相關的程式
目前卡在判斷方塊顏色的部份
想請問您是怎麼處理的?
可以的話是否也能順便把程式寄給我參考?
謝謝
nama Said,
七月 9, 2009 @ 2:31 pm
please email to me, thanks
jackass@oec.office.openfind.com.tw
dvdfox Said,
八月 29, 2009 @ 8:30 pm
可以方便給我一份測試嗎??謝謝
ke321 Said,
十月 3, 2009 @ 5:14 pm
也寄給我看看我也要
qq110320@hotmail.com
charlie Said,
十月 16, 2009 @ 8:29 pm
可以麻煩您寄給我嗎?
拜託囉
謝謝
小夜 Said,
七月 5, 2010 @ 5:55 am
拜託我也要 麻煩你一下 謝謝>”<
sorry-i-miss-you@yahoo.com.tw