国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

掃雷程序思想講解

2019-11-18 18:42:58
字體:
來源:轉載
供稿:網友
 掃雷程序思想講解
    在我大二的時候就編寫了一個掃雷程序,現在也有很多
源程序下載,我不知道他們的算法是怎么樣的,但我想我的
算法應是最清晰和簡單的。下面就來講解我的掃雷程序思想。
    首先我們在雷區上隨機地放上雷,沒有雷的地方被點擊
后就會顯示一個數字表示它周圍有幾個雷,這是怎么實現的
呢?我們可以把整個雷區看成一個二維數組a[i,j],如雷區:
 
 11  12  13  14  15  16  17  18
 21  22  23  24  25  26  27  28
 31  32  33  34  35  36  37  38
 41  42  43  44  45  46  47  48
 51  52  53  54  55  56  57  58
 
我要知道a[34]周圍有幾個雷,就只有去檢測
 a[23],a[24],a[25]
 a[33],       a[35]
 a[43],a[44],a[45]
這8個雷區是否放上了雷,仔細觀察它們成在數學關系。
抽象出來就是:a[i,j]的雷的個數就是由
 a[i-1,j-1],a[i-1,j],a[i-1,j+1]
 a[ i ,j-1],           a[ i ,j+1]
 a[i+1,j-1],a[i+1,j],a[i+1,j+1] 
(如果超出邊界再加以判斷)
這樣的8個雷區決定的。

    掃雷程序還會自動展開已確定沒有雷的雷區。如果
a[3,4]周圍雷數為1,a[2,3]已被標示為地雷,那么
a[24],a[25],a[33],a[35],a[43],a[44],a[45]
將被展開,一直波及到不可確定的雷區。這也是實現的
關鍵。我們可以把數組的元素設定為一個類對象,它們
所屬的類設定這樣的一個事件:在被展開時,檢查周圍
的雷數是否與周圍標示出來的雷數相等,如果相等則展
開周圍未標示的雷區。這樣新的雷區展開又觸發這個事
件,就這樣遞歸下去,一直蔓延到不可展開的雷區。
    相信在了解以上兩個要點后,把雷區這個類編寫完全
(如添加是否有雷標記,是否展開標記,周圍雷數等,雙
擊,左右單擊的鼠標事件等),實現掃雷程序應是十分簡
單的一件事。


上一篇:一個畫漸變的方法

下一篇:取得某一dll所有輸出函數名

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 翁源县| 太仓市| 横山县| 闸北区| 仁怀市| 伊通| 浑源县| 酒泉市| 沂源县| 遵义市| 南部县| 仁寿县| 招远市| 通山县| 南溪县| 大悟县| 和林格尔县| 民乐县| 蓝山县| 柳林县| 阜康市| 沾化县| 鹤庆县| 清流县| 石门县| 黄陵县| 梨树县| 恩平市| 三门峡市| 根河市| 杭锦后旗| 嵊泗县| 利辛县| 新干县| 麦盖提县| 扬中市| 县级市| 福建省| 确山县| 建水县| 宽城|