分為控制台下的類比列印雷區 和 Winform程式。
慶幸的是,中途本想去網上找演算法參考的,還是忍住了,勉勉強強竟然給擠出來了。
哈,還是值得慶幸下,純屬原創。
《MineSweeping 改前》 和 《MineSweeping 改後》兩個解決方案(應該叫解決方案吧- -#)中只有MineSweepingXP這個項目有修改,區別是改前把所有掃雷的操作判斷全寫在“雷”的控制項裡,自己都看不下去,還是折騰下,嘗試著提取出來了,不然在最底層的對象裡不斷去調用父控制項,完全擺脫掉物件導向的概念,一直這樣,自己都快瘋了。。。。。改掉後,雷區直接Enable = false掉,然後通過座標去判斷雷的。代碼還是有點亂,譬如"this"。。。
實現了大部分功能,效能卻很低,也有許多bug,後面Winform的演算法和控制台的演算法好像是不一樣的,控制台的不重要,MineSweeping工程裡是最早做的,自己畫的圖,雷也很Big,很雷人。後面乾脆重新做個1:1仿造的,把Win掃雷的圖全部手動截下來,自己做成素材,電子鐘則是在flash cs3裡畫,然後匯出的。
GDI。。。?我不懂 - -# 。好吧,只能貼圖。
功能上有些沒實現,勝利的條件也缺少幾種判斷,也沒往下做了,先多學些基礎先。。。
Console 輸出情況
Winform 與windows內建的掃雷相似性90%
比起之前的版本清晰了不少,更加合理些
功能:
開局,初級,中級,進階,自訂,英雄榜
初級,中級,進階破記錄則會登英雄榜
記錄上一次關閉時的遊戲設定
(以上功能和系統內建的掃雷是一樣的)
(資料是用XML檔案記錄的,不過副檔名被我換成dll了。在Debug下)
掃雷的功能應該是全部有了,缺少的可能有:
1.勝利條件沒有判斷全(如:剩餘未開啟的雷格子全是雷時,應為勝利)
2.左右鍵同步選取移動滑鼠,這裡的演算法太卡,移動快會有拖影,還有就是鬆開滑鼠時,不應該再響應滑鼠UP事件
3.在棋子旁邊,左右鍵雙擊有個翻開雷的功能,這個功能是朋友說的,玩不來 - - 。
4.左右鍵 很多小bug...
5. ...
原始碼和素材下載
本人初學,未接觸過演算法,在補最基礎的知識ing
可能有些東西錯得很離譜,請多指教 :)