




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄人機(jī)界面設(shè)計(jì)大作業(yè)錯(cuò)誤!未定義書簽。TOC o 1-5 h z HYPERLINK l bookmark2 第一章系統(tǒng)需求分析1 HYPERLINK l bookmark4 系統(tǒng)需求1 HYPERLINK l bookmark6 功能需求1 HYPERLINK l bookmark8 性能需求1 HYPERLINK l bookmark20 第二章概要設(shè)計(jì)2 HYPERLINK l bookmark22 2.1局部數(shù)據(jù)結(jié)構(gòu)2 HYPERLINK l bookmark24 2.2全局結(jié)構(gòu)3 HYPERLINK l bookmark26 2.3函數(shù)模塊分析3 HYPERLINK l bookm
2、ark28 第三章詳細(xì)設(shè)計(jì)及代碼編寫3 HYPERLINK l bookmark30 3.1功能函數(shù)設(shè)計(jì)3 HYPERLINK l bookmark32 3.2游戲歡迎模塊4 HYPERLINK l bookmark38 3.3游戲選擇模塊5 HYPERLINK l bookmark40 3.4游戲通關(guān)模塊6 HYPERLINK l bookmark42 3.5游戲運(yùn)行模塊73.6游戲結(jié)束模塊7 HYPERLINK l bookmark58 第四章測(cè)試設(shè)計(jì)8 HYPERLINK l bookmark60 4.1測(cè)試設(shè)計(jì)內(nèi)容8 HYPERLINK l bookmark62 4.2用戶手冊(cè)8 HY
3、PERLINK l bookmark64 第五章總結(jié)9 HYPERLINK l bookmark66 參考文獻(xiàn)9 第一章系統(tǒng)需求分析系統(tǒng)需求寶石探秘是一款鍛煉眼力的寶石交換消除游戲。游戲畫面會(huì)出現(xiàn)各種各樣、不同顏色的寶石,游戲的規(guī)則就是通過交換相鄰的兩塊寶石,使3個(gè)同一顏色的寶石連在一起,就可以消去他們。只能交換橫向、縱向,不能是斜向的。在游戲的主程序中,最重要的兩項(xiàng)數(shù)據(jù)是一個(gè)記錄每個(gè)圖形的類型的二維數(shù)組和一個(gè)記錄每個(gè)圖形狀態(tài)的二維數(shù)組。每個(gè)圖形的類型由電腦隨機(jī)產(chǎn)生。每種圖形的顏色記錄在一個(gè)數(shù)組中。用三個(gè)整型變量分別記錄玩家的關(guān)數(shù)、生命值、得分。用兩個(gè)整型變量記錄光標(biāo)的位置。用兩個(gè)長(zhǎng)型變量記錄
4、起始時(shí)間和停止時(shí)間。功能需求設(shè)計(jì)一款簡(jiǎn)單C語言游戲,游戲的主要功能是在游戲區(qū)隨機(jī)填滿四種圖形(圓形、三角形、正方形和菱形),但開始時(shí)橫向和縱向都不能有三個(gè)或三個(gè)以上相同的圖形相連。通過交換相鄰位置的圖形使盡可能多的圖形相連,即可消去相連圖形(清除前圖形會(huì)閃爍),得分為消去相連圖形的個(gè)數(shù)。直到限定時(shí)間到,結(jié)束一局。程序支持鍵盤操作,不支持鼠標(biāo)操作。在初始界面下按F2可以開始游戲。按F3進(jìn)入選項(xiàng)菜單,在選項(xiàng)菜單中用戶可以選擇要玩的等級(jí)(7X7或8X9),并分別選擇四種圖形的顏色。按ESC可以隨時(shí)退出游戲。游戲開始后用戶可以通過上下左右鍵來控制光標(biāo)的位置。按ENTER鍵可以選中一個(gè)未選中的圖形,再將
5、光標(biāo)移動(dòng)到選中圖形的上下或左右圖形上,再按ENTER鍵,即可實(shí)現(xiàn)相鄰圖形的交換。如果光標(biāo)指向的圖形已選中,再按ENTER鍵可以取消圖案被選中的狀態(tài)。按F4鍵可以暫停游戲。限定時(shí)間到用戶未成功過關(guān)則生命值減一,生命值為零時(shí),游戲結(jié)束。每局結(jié)束,都有文字提示。用戶過關(guān)會(huì)顯示“welldone”,本局失敗顯示“tryagain”,游戲結(jié)束顯示“gameover”。性能需求1硬件環(huán)境本程序是用TurboC3.0開發(fā)的,在xp環(huán)境下運(yùn)行。在Vista操作系統(tǒng)下不可運(yùn)行。處理器:IntelPentium43.06GX或更高內(nèi)存:256M(推薦)硬盤空間:40GB顯卡:SVGA顯示適配器2軟件環(huán)境操作系統(tǒng):
6、Windows2000/XP開發(fā)軟件:MicrosoftVisualStudio.NET2008數(shù)據(jù)庫:MicrosoftSQLServer2005第二章概要設(shè)計(jì)2.1局部數(shù)據(jù)結(jié)構(gòu)利用二維數(shù)組記錄每個(gè)圖形的類型和狀態(tài)。每次交換、清除、重新填入圖形,都要改變數(shù)組元素的値。并重新繪制圖形omain()函數(shù)運(yùn)行后,如果用戶按F3選擇SETTING選項(xiàng)后,調(diào)用函數(shù)setting(),進(jìn)行用戶設(shè)定,改變參數(shù)的值。當(dāng)用戶按F2選擇START選項(xiàng)后,調(diào)用函數(shù)start(),游戲開始。結(jié)構(gòu)體:structDiamondintx;inty;intlife;inttype;diamond99;/用于鉆石坐標(biāo)定位,
7、判斷消除和類型分配。全局?jǐn)?shù)組:charscoreup3=0;/記錄分?jǐn)?shù)時(shí)所用各位數(shù)數(shù)組全局變量:intLife1,time1,person;/消去寶石累加之和,生命條數(shù),時(shí)間計(jì)數(shù),剩余人數(shù)intupnum,downnum,leftnum,rightnum;/上下左右鍵盤響應(yīng)次數(shù)記錄intdiamondnum=3;/初始化寶石數(shù)量intxselect,yselect;/ENTER后位置intx1select,ylselect;/前一次ENTER后位置intflagE=O;/判斷是否響應(yīng)ENTERintmoveselect=0;/判斷是否移動(dòng)光標(biāo)intLevel=0;/等級(jí)標(biāo)志inti1,j1,k
8、1,k2;/選擇模式參數(shù)intPm=0,Pn=0,Pfm=0,Pfn=0,score=0;/記錄光標(biāo)移動(dòng)所在寶石的位置time_tStart,End;/時(shí)間始末參數(shù)2.2全局結(jié)構(gòu)圖2-1模塊2.3函數(shù)模塊分析Voidsetting()用于設(shè)置游戲關(guān)卡和各種圖形的顏色Voidstart()用于開始游戲,Voiddeal()在初始化圖形時(shí),保證最初的圖形不會(huì)出現(xiàn)三個(gè)或三個(gè)以上相同圖形相連。Voidkeys()用于start()中的鍵盤響應(yīng),按上下左右鍵移動(dòng)光標(biāo),按ENTER鍵選中圖形。Voidgame()用于判斷是否超過限定時(shí)間,結(jié)束游戲。Intchange()用于檢測(cè)兩個(gè)位置的圖形交換后是否出現(xiàn)
9、三個(gè)或三個(gè)以上相同圖形相連,若有,則記錄應(yīng)該清除的圖形位置,并返回1,表示可以交換。Voidcheck()用于清除相連的圖形,閃爍,并完成圖形的下落和重新生成,并檢查圖形下落后是否有新的相連圖形,若有則記錄應(yīng)清除的圖形,進(jìn)行下一次清除。Voidsan()用于繪制三角形并填充顏色。Voidju()用于繪制正方形并填充顏色。Voidling()用于繪制菱形并填充顏色。Voidyuan()用于繪制圓形并填充顏色。Voiddraw()用于根據(jù)二維數(shù)組元素的值在相應(yīng)位置繪制相應(yīng)圖形。Voidshow()顯示初始界面。第三章詳細(xì)設(shè)計(jì)及代碼編寫3.1功能函數(shù)設(shè)計(jì)Voidsetting()函數(shù)進(jìn)行游戲設(shè)定,通
10、過改變變量level的值改變關(guān)卡,通過給記錄顏色的數(shù)組的每個(gè)元素的值來改變每種圖形的顏色。Voidstart()函數(shù),開始游戲。根據(jù)level的值確定行列數(shù),畫出網(wǎng)格,調(diào)用random()函數(shù)給記錄圖形類型的二維數(shù)組每個(gè)元素賦值,并調(diào)用deal()函數(shù)使初始畫面中沒有三個(gè)或三個(gè)以上相同圖形相連的情況。根據(jù)每個(gè)數(shù)組的值,畫出相應(yīng)位置的圖形。用time()函數(shù)記錄開始時(shí)間。做一個(gè)循環(huán)。若有鍵盤輸入則調(diào)用keys()函數(shù)鍵盤響應(yīng)。每次按回車后重新輸出分?jǐn)?shù)。若分?jǐn)?shù)已達(dá)到過關(guān)的分?jǐn)?shù)則開啟下一關(guān)。再次調(diào)用time()函數(shù)記錄當(dāng)前時(shí)間。用兩次時(shí)間的差值計(jì)算剩余時(shí)間,并用bar()函數(shù)畫出時(shí)間進(jìn)度條。Void
11、deal()利用循環(huán)掃描是否有三個(gè)或三個(gè)以上圖形相連,若有則把重新生成此位置對(duì)應(yīng)數(shù)組元素的值,并用遞歸方式調(diào)用deal(),初始化圖形。Voidkeys()首先判斷是否有鍵盤輸入,若有則接受鍵盤掃描碼,若是方向鍵則吧當(dāng)前光標(biāo)位置畫綠色矩形框,并把移動(dòng)后所在位置畫洋紅色矩形框,表示光標(biāo)移動(dòng)。若是ESC鍵則調(diào)用exit(0)函數(shù)結(jié)束程序。若是ENTER鍵則改變變量et的值。et為記錄是否已選中其他圖形的變量。若et為1,則調(diào)用change()函數(shù)。若change()返回值為1,則調(diào)用check()清除相連的圖形,并完成圖形下落。Voidgame()調(diào)用time()函數(shù),獲得當(dāng)前時(shí)間,與初始時(shí)間相減
12、判斷限定時(shí)間是否已經(jīng)到達(dá)。若已到達(dá)限定時(shí)間則結(jié)束一局。若生命值減一,若生命值變?yōu)橐粍t游戲結(jié)束。Voidchange()掃描是否有相連的圖形,若有則把對(duì)應(yīng)的記錄狀態(tài)的數(shù)組元素值改為1,并返回1,并把交換的兩個(gè)圖形對(duì)應(yīng)數(shù)組元素的值交換,并重新畫出兩個(gè)位置的圖形,完成交換。Voidcheck()清除的狀態(tài)數(shù)組元素為1的對(duì)應(yīng)圖形,每清除一個(gè)圖形分?jǐn)?shù)加一,重新繪制圖形,再清除,完成閃爍。利用循環(huán),把每列的圖形對(duì)應(yīng)數(shù)組元素由下向獲得上面狀態(tài)數(shù)組元素為0類型的值,若首行的元素也被清除則重新隨機(jī)生成。從而完成圖形的下落。此函數(shù)中,用循環(huán)函數(shù)判斷上面有多少被清除的圖形,判斷該獲得哪個(gè)元素的值。重新利用循環(huán)掃描是
13、否有相連圖形。Voidsan()、voidling()用直線畫出密封圖形,并有floodfill()函數(shù)填充圖形顏色Voidyuan()、voidju()用circle()和rectangle()函數(shù)畫圖并用floodfill()函數(shù)填充顏色。Voiddraw()用switch()語句根據(jù)數(shù)組元素的值畫出相應(yīng)的圖形,避免其他函數(shù)中需要重新畫圖時(shí),書寫的語句過長(zhǎng)。Voidshow()輸出初始界面。3.2游戲歡迎模塊核心代碼部分:keycode;hua(480,90);setcolor(lO);rectangle(0,0,639,479);setcolor(4
14、);settextstyle(0,0,2);outtextxy(100,10,Instructrion!);setcolor(15);settextstyle(3,0,2);outtextxy(5,40,1:YougonnaplayBejeweled,ifyoudont);outtextxy(5,65,wannacontinue,pressEsc.);outtextxy(5,100,2:Youwillfirstchose7X7modeor);outtextxy(5,125,8X9mode,useArrowkeytoselect.);outtextxy(5,160,3:Whilegamestar
15、ts,youneedhurryto);outtextxy(5,185,findandexchange2diamondstomake);outtextxy(5,210,3samediamondslineup,thenscoreup);outtextxy(5,245,4:UseEntertoselect,Arrowkeytomove);outtextxy(5,270,Esctoquitgame!);outtextxy(5,305,5:Aslevelup,difficultylevelwillup,more);outtextxy(5,330,diamondswilljoinin.);outtextx
16、y(5,365,6:Useyourwisdomandhaveagoodtime!);settextstyle(3,0,4);setcolor(RED);outtextxy(100,400,PressEntertocontinue!);dokeycode=all_key();while(keycode!=ENTER&keycode!=ESC);if(keycode=ESC)closegraph();3.3游戲選擇模塊核心代碼部分:intselectmode()intkeycode;intflag=0;dosetcolor(9);keycode=all_key();if(keycode=ESC)b
17、reak;if(keycode=DOWN)fire(110,235,4,15);fire(110,235,12,10);fire(110,235,14,5);fire(110,175,0,15);flag=1;if(keycode=UP)fire(110,175,4,15);fire(110,175,12,10);fire(110,175,14,5);fire(110,235,0,15);flag=0;while(keycode!=ENTER);if(flag=1)return1;if(flag=0)return0;3.4游戲通關(guān)模塊核心代碼部分:voidfire(intx,inty,intc
18、olor,intsize)setcolor(color);setfillstyle(1,color);fillellipse(x+15,y+15,size,size);3.5游戲運(yùn)行模塊核心代碼部分:x;setcolor(O);setfillstyle(l,O);for(x=0;xv=150;x+)bar(318-x*2,5,320-x*2,475);bar(320+x*2,5,332+x*2,475);voiddiamond1(intx,inty)setcolor(4);setfillstyle(1,5);fillellipse(x+25,y+25,20,8);f
19、illellipse(x+25,y+25,8,20);setcolor(2);setfillstyle(1,14);fillellipse(x+25,y+25,8,8);3.6游戲結(jié)束模塊核心代碼部分:voidgameover()setcolor(0);setfillstyle(1,0);bar(1,1,639,479);intkeycode;setcolor(RED);settextstyle(0,0,7);outtextxy(50,220,GAMEOVER);while(all_key()!=ESC);closegraph();第四章測(cè)試設(shè)計(jì)4.1測(cè)試設(shè)計(jì)內(nèi)容在開發(fā)這個(gè)軟件系統(tǒng)的過程中,面
20、對(duì)著極其錯(cuò)綜復(fù)雜的問題,人的主觀認(rèn)識(shí)不可能完全符合客觀現(xiàn)實(shí),在本次設(shè)計(jì)過程中,我采用循環(huán)測(cè)試法,力求在每個(gè)階段結(jié)束之前通過嚴(yán)格技術(shù)審查,即每完成一個(gè)功能,就進(jìn)行測(cè)試,盡可能早的發(fā)現(xiàn)并糾正差錯(cuò),完成模塊測(cè)試之后再進(jìn)行系統(tǒng)測(cè)試。在該設(shè)計(jì)中,我偏重考慮了當(dāng)用戶輸入的信息出錯(cuò)時(shí),系統(tǒng)就會(huì)出現(xiàn)提示,以便讓用戶知道出錯(cuò)的原因,并能及時(shí)做出修改,所以我站在用戶的角度考慮,盡可能設(shè)想各種邊界條件,如記錄為空,輸入為空,輸入出錯(cuò)等,以此來發(fā)現(xiàn)錯(cuò)誤,糾正錯(cuò)誤,取得了一定的效果。綜上所述,程序在windowsXP下運(yùn)行正常。清除橫向縱向以及橫縱相連等特殊情況均可正常清除,并正確的下落圖形。靠近邊界的相連圖形可以正常
21、清除和下落。用戶手冊(cè)這是一款簡(jiǎn)單C語言游戲,可以在dos、windowsxp、windows2000等操作系統(tǒng)上運(yùn)行。無需安裝,即可使用。游戲的主要功能是在游戲區(qū)隨機(jī)填滿四種圖形(圓形、三角形、正方形和菱形),但開始時(shí)橫向和縱向都不能有三個(gè)或三個(gè)以上相同的圖形相連。通過交換相鄰位置的圖形使盡可能多的圖形相連,即可消去相連圖形(清除前圖形會(huì)閃爍,清除后會(huì)發(fā)出聲音),得分為消去相連圖形的個(gè)數(shù)。直到限定時(shí)間到,結(jié)束一局。程序支持鍵盤操作,不支持鼠標(biāo)操作。在初始界面下按F2可以開始游戲。按F3進(jìn)入選項(xiàng)菜單,在選項(xiàng)菜單中用戶可以選擇要玩的等級(jí)(7X7或8X9),并分別選擇四種圖形的顏色。按ESC可以隨時(shí)
22、退出游戲。游戲開始后用戶可以通過上下左右鍵來控制光標(biāo)的位置。按ENTER鍵可以選中一個(gè)未選中的圖形,再將光標(biāo)移動(dòng)到選中圖形的上下或左右圖形上,再按ENTER鍵,即可實(shí)現(xiàn)相鄰圖形的交換。如果光標(biāo)指向的圖形已選中,再按ENTER鍵可以取消圖案被選中的狀態(tài)。按F4鍵可以暫停游戲。限定時(shí)間到用戶未成功過關(guān)則生命值減一,生命值為零時(shí),游戲結(jié)束。每局結(jié)束,都有文字提示。用戶過關(guān)會(huì)顯示“welldone”,本局失敗顯示“tryagain”,游戲結(jié)束顯示“gameover”。第五章總結(jié)終于到了總結(jié)的部分,好開心哦??粗\(yùn)行正常的程序,心里涌出一股強(qiáng)烈的成就感。這是第一次真正意義上的獨(dú)立設(shè)計(jì)程序,最重要的是,它達(dá)到了我預(yù)期的效果,甚至可以毫不客氣的說,它完成的比我期望的要更好??偹銢]有白白辜負(fù)這一個(gè)多星期以來的期待,雖然真的是讓我頭疼到晚上都沒睡好。接下來,談?wù)勎业某绦驈拈_始到現(xiàn)在的完美蛻變歷程吧。最開始心中充滿疑問,對(duì)自己的實(shí)力頗為懷疑,對(duì)這種圖形的處理沒有信心。以前只編過一些比較簡(jiǎn)單的字符處理程序,編這樣一個(gè)比較難的程序,出現(xiàn)了很多錯(cuò)誤,有時(shí)為了一個(gè)錯(cuò)誤調(diào)試幾天幾夜,但是只要不放棄,最終還是成功了。一步一步地完成了程序的一些功能,最后終于做出了符合要求的程序。這次課設(shè)鍛煉了我的自學(xué)能力。我有時(shí)對(duì)函數(shù)的理解是錯(cuò)誤的導(dǎo)致了程序的錯(cuò)誤,在老師的指導(dǎo)下我改正了錯(cuò)誤,加深了理解。這次課設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)玉米收購合同范本
- 外賣品牌加盟合同范本
- 醫(yī)院廚房協(xié)議合同范本
- 司機(jī)和公司合同范本
- 2025年腫瘤醫(yī)療服務(wù)合作協(xié)議書
- 叉車質(zhì)保合同范本
- 南京古玩買賣合同范本
- 勞動(dòng)合同范本 證明
- 印刷材料合同范本
- 公司服務(wù)用房合同范例
- 湖北聯(lián)投集團(tuán)2024校園招聘【298人】管理單位遴選500模擬題附帶答案詳解
- 機(jī)柜 施工方案
- 設(shè)計(jì)質(zhì)量、進(jìn)度、安全、保密等管理方案及保障措施
- 單片機(jī)應(yīng)用技術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 文藝復(fù)興史學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 產(chǎn)后出血-教學(xué)查房
- 2024年新疆中考數(shù)學(xué)試卷(含答案解析)
- 2025年高考物理二輪復(fù)習(xí)的教學(xué)對(duì)策與思考講座
- 血液透析并發(fā)癥頭痛
- 職業(yè)病防護(hù)設(shè)施與個(gè)體防護(hù)用品的使用和維護(hù)
- 2023年全國(guó)職業(yè)院校技能大賽-直播電商賽項(xiàng)規(guī)程
評(píng)論
0/150
提交評(píng)論