




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、掃雷游戲制作一、分析掃雷游戲的基本功能 1、從外觀上分析: 方塊 笑臉 地雷數(shù)目顯示 計(jì)時(shí)器 有雷標(biāo)識(shí) 無雷標(biāo)識(shí) 紅旗顯示 勝利畫面 失敗畫面一、分析掃雷游戲的基本功能 2、從操作上分析:鼠標(biāo)單擊右擊雙擊點(diǎn)擊鼠標(biāo)左鍵于未知區(qū)域,如果未知區(qū)域有雷,游戲停止,顯示所有的地雷。如果沒雷,則顯示周圍雷數(shù),如果周圍沒雷,則再查看周圍八個(gè)區(qū)域是否有雷直到有雷為止,并顯示雷的數(shù)目。 一、分析掃雷游戲的基本功能 2、從操作上分析:鼠標(biāo)單擊右擊雙擊點(diǎn)擊鼠標(biāo)右鍵于未知區(qū)域,則顯示小紅旗,將其置為有雷。在該位置再次點(diǎn)擊右鍵則視為不確定,顯示問號(hào),點(diǎn)擊第三次,取消設(shè)置,問號(hào)消失。 一、分析掃雷游戲的基本功能 2、從操
2、作上分析:鼠標(biāo)單擊右擊雙擊如果該數(shù)字方塊周圍地雷已經(jīng)完全標(biāo)識(shí)出,雙擊該數(shù)字所在方塊,將快速翻開所有周圍不是地雷的方塊,并顯示,直到有雷為止。 二、需求分析 1、功能概述: 按功能將游戲區(qū)域分成兩個(gè)區(qū)域:雷區(qū)和提示區(qū)。提示區(qū)包括一個(gè)計(jì)數(shù)器和一個(gè)按鍵操作。游戲過程中,當(dāng)玩家用鼠標(biāo)點(diǎn)擊相應(yīng)的方塊,程序就會(huì)作出相應(yīng)的鼠標(biāo)響應(yīng)事件,而眾多鼠標(biāo)事件的處理,都是圍繞著實(shí)現(xiàn)掃雷程序的算法而衍生的。二、需求分析 1、功能概述: 游戲開始時(shí),系統(tǒng)會(huì)在雷區(qū)的某些小方塊中隨機(jī)布下若干個(gè)地雷。安放好地雷的小方塊稱之為雷方塊,其他的稱之為非雷方塊。部署完畢后,系統(tǒng)會(huì)在其他非雷方塊中填充一些數(shù)字。某一個(gè)具體數(shù)字表示與其緊鄰
3、的8個(gè)方塊中有多少雷方塊。玩家可以根據(jù)這些信息去判斷是否可以打開某些方塊,并把認(rèn)為是地雷的方塊打上標(biāo)識(shí)。如果某個(gè)數(shù)字方塊周圍的地雷全都標(biāo)記完,可以指向該方塊并同時(shí)點(diǎn)擊鼠標(biāo)左右鍵,將其周圍剩下的方塊挖開。二、需求分析 1、功能概述: 如果編號(hào)方塊周圍地雷沒有全部標(biāo)記,在同時(shí)點(diǎn)擊鼠標(biāo)左右鍵時(shí),其他隱藏或未標(biāo)記的方塊將被按下一次(即閃爍一下)。當(dāng)玩家將所有地雷找出后,其余的非雷方塊區(qū)域都已打開,此時(shí)游戲勝利。在游戲過程中,一旦錯(cuò)誤地打開了雷方塊則立即失敗,游戲結(jié)束;當(dāng)玩家標(biāo)識(shí)的地雷數(shù)超過程序設(shè)定,雖然打開了全部其余方塊,游戲仍然不會(huì)結(jié)束。二、需求分析2、功能需求: (1)雷區(qū)上部左側(cè)顯示總雷數(shù),并減
4、去被標(biāo)明有雷區(qū)域的數(shù)目。 (2)雷區(qū)上部中間位置顯示一按鈕用于開局和顯示鼠標(biāo)動(dòng)作的結(jié)果。 (3)雷區(qū)上部右側(cè)顯示掃雷的時(shí)間。 二、需求分析 2、功能需求: (4)將雷全部掃清后,則顯示一對(duì)話框?qū)⒛愕男彰浫肱判邪?。以時(shí)間排序。 (5)點(diǎn)擊鼠標(biāo)左鍵于未知區(qū)域,如果未知區(qū)域有雷,游戲停止,顯示所有的地雷。如果沒雷,則顯示周圍雷數(shù),如果周圍沒雷,則再查看周圍八個(gè)區(qū)域是否有雷直到有雷為止,并顯示周圍雷的數(shù)目。 二、需求分析 2、功能需求: (6)點(diǎn)擊鼠標(biāo)右鍵于未知區(qū)域,則顯示小紅旗,將其置為有雷。在該位置再次點(diǎn)擊右鍵則視為不確定,顯示問號(hào),點(diǎn)擊第三次,取消設(shè)置,問號(hào)消失。 (7)如果該數(shù)字方塊周圍地雷
5、已經(jīng)完全標(biāo)識(shí)出,雙擊該數(shù)字所在方塊,將快速翻開所有周圍不是地雷的方塊,并顯示,直到有雷為止。 二、需求分析 3、功能模塊: (1)游戲界面 (2)布雷 (3)鼠標(biāo)事件 (4)地雷判斷 (5)游戲勝利 (6)游戲結(jié)束二、需求分析 3、功能模塊: (7)游戲設(shè)置。 (8)查看英雄榜,幫助。 三、總體設(shè)計(jì) 1、游戲總體流程圖 用圓角矩形代表數(shù)據(jù)開始和結(jié)束。 用矩形代表數(shù)據(jù)處理。 用菱形代表判斷。 用帶方向的箭頭代表數(shù)據(jù)流向。三、總體設(shè)計(jì) 游戲總體流程圖三、總體設(shè)計(jì) 1、游戲界面 (1)提示區(qū) (2)雷區(qū)三、總體設(shè)計(jì) 2、游戲界面三、總體設(shè)計(jì) 2、布雷(1) 算法的設(shè)計(jì) 把整個(gè)雷區(qū)看成一個(gè)二維數(shù)組,a
6、ij周圍的雷個(gè)數(shù)是由如下8個(gè)雷區(qū)決定的(如果超出邊界,應(yīng)該再加以判斷): ai-1j-1, ai-1j, ai-1j+1, aij-1, aij+1, ai+1 j-1, ai+1j, ai+1j+1, 在被展開時(shí),檢查周圍的雷數(shù)是否與周圍標(biāo)示出來的雷數(shù)相等,如果相等則展開周圍未標(biāo)示的雷區(qū)。這樣新的雷區(qū)展開又觸發(fā)這個(gè)事件,就這樣遞歸下去,一直蔓延到不可展開的雷區(qū)。三、總體設(shè)計(jì) 3、布雷 (2) 核心算法的實(shí)現(xiàn)核心算法的實(shí)現(xiàn) 整個(gè)游戲程序包含3個(gè)階段:布雷、掃雷過程和結(jié)果(并不是操作結(jié)果展示,而是在掃雷過程中,玩家通過與游戲交互后的操作結(jié)果展示)。 首先定義雷方塊的數(shù)據(jù)結(jié)構(gòu),具體描述如下所示。
7、struct int num;/*格子當(dāng)前處于什么狀態(tài),1有雷,0已經(jīng)顯示過數(shù)字或者空白格子*/ int roundnum;/*統(tǒng)計(jì)格子周圍有多少雷*/ int flag;/*右鍵按下顯示紅旗的標(biāo)志,0沒有紅旗標(biāo)志,1有紅旗標(biāo)志*/ Mine1010;然后定義雷方塊的狀態(tài)類別和屬性類別。三、總體設(shè)計(jì) 2、布雷 (3) 布雷流程圖布雷流程圖randomize(); /*初始化隨機(jī)數(shù)發(fā)生器 */ for(i=0;i=10;i+) for(j=0;j=10;j+) Mineij.num=2;/*表示沒有地雷*/ Mineij.flag=0;/*表示沒紅旗標(biāo)志*/ while(1) i=random(
8、100)%10; j=random(100)%10; if(Mineij.num!=1) Mineij.num=1; mineNUM+; if(mineNUM=10) break; 三、總體設(shè)計(jì) 3、鼠標(biāo)事件 鼠標(biāo)左擊事件流程圖鼠標(biāo)左擊事件流程圖 (1)點(diǎn)擊未知區(qū)域。)點(diǎn)擊未知區(qū)域。 (2)是地雷,游戲結(jié)束。)是地雷,游戲結(jié)束。 (3)不是地雷,判斷周圍地雷數(shù)目是否為)不是地雷,判斷周圍地雷數(shù)目是否為0,為,為0則顯則顯示空白格子,并拓展周圍格子,不為示空白格子,并拓展周圍格子,不為0則顯示地雷數(shù)。則顯示地雷數(shù)。 流程圖說明:數(shù)據(jù)的起始和結(jié)束用圓角矩形流程圖說明:數(shù)據(jù)的起始和結(jié)束用圓角矩形 數(shù)
9、據(jù)的處理用矩形數(shù)據(jù)的處理用矩形 表示判斷用菱形表示判斷用菱形 數(shù)據(jù)流向用帶方向箭頭表示數(shù)據(jù)流向用帶方向箭頭表示鼠標(biāo)左擊事件流程圖鼠標(biāo)左擊事件流程圖空白格子拓展空白格子拓展(0,0)(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)(0,7)(0,8)(0,9)(1,0)(1,1)(1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(1,8)(1,9)(2,0)(2,1)(2,2)(2,3)(2,4)(2,5)(2,6)(2,7)(2,8)(2,9)(3,0)(3,1)(3,2)(3,3)(3,4)(3,5)(3,6)(3,7)(3,8)(3,9)(4,0)(4,1)(4,2)
10、(4,3)(4,4)(4,5)(4,6)(4,7)(4,8)(4,9)(5,0)(5,1)(5,2)(5,3)(5,4)(5,5)(5,6)(5,7)(5,8)(5,9)(6,0)(6,1)(6,2)(6,3)(6,4)(6,5)(6,6)(6,7)(6,8)(6,9)(7,0)(7,1)(7,2)(7,3)(7,4)(7,5)(7,6)(7,7)(7,8)(7,9)(8,0)(8,1)(8,2)(8,3)(8,4)(8,5)(8,6)(8,7)(8,8)(8,9)(9,0)(9,1)(9,2)(9,3)(9,4)(9,5)(9,6)(9,7)(9,8)(9,9)1 11 11 11 11 1
11、1 10 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 10 00 00 01 10 01 11 10 01 11 11 11 12 21 11 12 21 12 21 11 11 11 11 10 01 10 01 11 11 11 11 11 11 11 11 11 11 11 11 12 21 11 11 11 10 01 11 12 22 22 21 11 10 00 01 11 12 20 00 01 11 11 10 00 00 00 0(0,0)(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)(0,7)(0,8)
12、(0,9)(1,0)(1,1)(1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(1,8)(1,9)(2,0)(2,1)(2,2)(2,3)(2,4)(2,5)(2,6)(2,7)(2,8)(2,9)(3,0)(3,1)(3,2)(3,3)(3,4)(3,5)(3,6)(3,7)(3,8)(3,9)(4,0)(4,1)(4,2)(4,3)(4,4)(4,5)(4,6)(4,7)(4,8)(4,9)(5,0)(5,1)(5,2)(5,3)(5,4)(5,5)(5,6)(5,7)(5,8)(5,9)(6,0)(6,1)(6,2)(6,3)(6,4)(6,5)(6,6)(6,7)(6,8)
13、(6,9)(7,0)(7,1)(7,2)(7,3)(7,4)(7,5)(7,6)(7,7)(7,8)(7,9)(8,0)(8,1)(8,2)(8,3)(8,4)(8,5)(8,6)(8,7)(8,8)(8,9)(9,0)(9,1)(9,2)(9,3)(9,4)(9,5)(9,6)(9,7)(9,8)(9,9)1 11 11 11 11 11 10 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 10 00 00 01 10 01 11 10 01 11 11 11 12 21 11 12 21 12 21 11 11 11 11 10 01
14、 10 01 11 11 11 11 11 11 11 11 11 11 11 11 12 21 11 11 11 10 01 11 12 22 22 21 11 10 00 01 11 12 20 00 01 11 11 10 00 00 00 0i=3j=4int ShowWhite(int i,int j)/*顯示無雷區(qū)的空白部分*/ if(Mineij.flag=1|Mineij.num=0)/*如果有紅旗或該格處理過就不對(duì)該格進(jìn)行任何判斷*/ return; NmineNUM-;/*顯示過數(shù)字或者空格的格子就表示多處理了一個(gè)格子,當(dāng)所有格子都處理過了表示勝利*/ if(Mineij.
15、roundnum=0&Mineij.num!=1)/*顯示空格*/ DrawEmpty(i,j,1,7); Mineij.num=0; elseif(Mineij.roundnum!=0)/*輸出雷數(shù)*/ DrawEmpty(i,j,0,8);sprintf(randmineNUM,%d,Mineij.roundnum);setcolor(RED); outtextxy(195+j*20,95+i*20,randmineNUM); Mineij.num=0;/*已經(jīng)輸出雷數(shù)的格子用0表示已經(jīng)用過這個(gè)格子*/return ; /*8個(gè)方向遞歸顯示所有的空白格子*/ if(i!=0&Minei-1j.num!=1) ShowWhite(i-1,j); if(i!=0&j!=9&Minei-1j+1.num!=1) ShowWhite(i-1,j+1); if(j!=9&Mineij+1.num!=1) ShowWhite(i,j+1); if(j!=9&i!=9&Minei+1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版三年級(jí)語(yǔ)文下冊(cè)第六單元達(dá)標(biāo)測(cè)試卷(含答案)
- 關(guān)于食品gmp的單選試題及答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)押題練習(xí)試題B卷含答案
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)與服務(wù)自我檢測(cè)試卷A卷附答案
- 酒店保潔合同(2篇)
- 2025年全國(guó)碩士研究生考試《政治》模擬試卷一
- H2H行業(yè)虛擬現(xiàn)實(shí)技術(shù)研究與應(yīng)用方案
- 智慧之書少兒版讀后感
- 火鍋店合伙人協(xié)議書
- 童年記憶繪本故事賞析與創(chuàng)作啟示
- 勞務(wù)派遣勞務(wù)外包項(xiàng)目方案投標(biāo)文件(技術(shù)方案)
- 2025年安全員C證(專職安全員)考試題庫(kù)
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 2025年廣州市公安局招考聘用交通輔警200人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 貴州省貴陽(yáng)市2024-2025學(xué)年九年級(jí)上學(xué)期期末語(yǔ)文試題(含答案)
- 2025年江蘇海事職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 計(jì)件工資計(jì)算表格模板
- 兩癌防治知識(shí)培訓(xùn)
- 《moldflow學(xué)習(xí)資料》課件
- 2025中國(guó)移動(dòng)安徽分公司春季社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年吉安職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
評(píng)論
0/150
提交評(píng)論