C 掃雷遊戲程式設計

2021-04-26 22:20:12 字數 1030 閱讀 6426

一、概述

最近買了心機nokia6300,上面有一款掃雷遊戲,閒暇時光總是在玩,玩難度的級別還挺難過的。呵呵

後來就想使用c#寫個掃雷程式玩玩,遊戲玩多了,遊戲的思想就不知不覺的有了,下面所有的**是沒有任何參考的情況下,自己寫出來的,有許多瑕疵,程式也沒經過什麼優化,主要的演算法思想其實就那麼幾行。

先給出程式的執行介面,要新增一些控制項,這裡就不囉嗦了,程式本來有原始碼,但是,為了方便,我將所有的**都寫在了form1中(這個習慣不好,嘿嘿)。

二、程式設計思路

程式主要的是bound這個類,繼承了表單中的button類,我感覺就用按鈕來模擬模擬較快,僅僅是考慮快,也許有其他的方法,主要是因為button控制項本身就有單擊事件,掃雷就需要這兩個事件,如果自己寫,可能要寫這兩個事件。

雷陣需要有乙個陣列雷儲存其狀態,**中都有說明了,陣列中的每個下標都和雷有對應關係,所以,我給所有的雷新增了x,y的屬性,這個做是方便雷的定位,在計算周圍雷數時非常有幫助。

新增了雷陣陣列後,有兩個事情比較重要:一、隨機生成雷的分布,這個演算法有很多,我是用自己感覺比較簡單的演算法,將所有的雷隨機的放在沒有雷的位置上,就這樣。二、計算周圍雷數;在放置了雷後,要計算這個雷周圍的數字,一共是八個位置,其實很簡單,只要有雷的位置,它的周圍框都加一就好了,但是注意判斷條件就好了,只要這些框在0-max的範圍內就好了。

在初始化了雷陣後,剩下的就簡單了,新增雷的左擊時間和右擊時間,判斷是否踩到雷,是否掃到雷等等。

在掃雷中還有乙個比較重要的演算法是對掃雷的遞迴,在掃雷遊戲中,如果乙個雷上的周圍雷數是零,就可以將它周圍的所有的格仔翻開,(因為沒有雷嘛),和計算周圍雷數的方法一樣,只是這裡呼叫的是遞迴的方法,只要給按鈕設定好是否已經翻開的狀態就好了,翻開的按鈕就不進行遞迴操作了。

三、小結

遊戲設定了遊戲的時間,這個是遊戲擴充套件趣味性的問題了,可以根據這個做個排行榜,遊戲還可以設定一些難度分級,我看了手機遊戲,雷數和陣列數比例為1:9的難度較低,比例為1:4的難度就較大了。遊戲要根據這些引數來動態的變化這些資料,增加遊戲的可玩性。

自己在c#上寫的第乙個遊戲程式,有點信心了,呵呵,和新手共勉。

c 掃雷遊戲

一 c 實現掃雷 1 在form中 bombclass bombclass new bombclass 布雷按鈕事件 private void initbombbtn click object sender,eventargs e 雷盤的滑鼠點選事件 方法一 private void bombpan...

掃雷遊戲。。c 編寫。。

我知道很簡單,就這樣吧。掃雷 2012 11 20 include include include include include include using namespace std struct node queueq int map 1010 1010 already 1010 1010 i...

C語言 掃雷遊戲

標頭檔案 ifndef mine h define mine h define line 10 define list 10 define rows 6 define cows 6 int game char userboard line 2 list 2 char playerboard line...