人機界面交互大作業(yè)_第1頁
人機界面交互大作業(yè)_第2頁
人機界面交互大作業(yè)_第3頁
人機界面交互大作業(yè)_第4頁
人機界面交互大作業(yè)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目錄人機界面設(shè)計大作業(yè)錯誤!未定義書簽。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è)計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 第三章詳細設(shè)計及代碼編寫3 HYPERLINK l bookmark30 3.1功能函數(shù)設(shè)計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游戲運行模塊73.6游戲結(jié)束模塊7 HYPERLINK l bookmark58 第四章測試設(shè)計8 HYPERLINK l bookmark60 4.1測試設(shè)計內(nèi)容8 HYPERLINK l bookmark62 4.2用戶手冊8 HY

3、PERLINK l bookmark64 第五章總結(jié)9 HYPERLINK l bookmark66 參考文獻9 第一章系統(tǒng)需求分析系統(tǒng)需求寶石探秘是一款鍛煉眼力的寶石交換消除游戲。游戲畫面會出現(xiàn)各種各樣、不同顏色的寶石,游戲的規(guī)則就是通過交換相鄰的兩塊寶石,使3個同一顏色的寶石連在一起,就可以消去他們。只能交換橫向、縱向,不能是斜向的。在游戲的主程序中,最重要的兩項數(shù)據(jù)是一個記錄每個圖形的類型的二維數(shù)組和一個記錄每個圖形狀態(tài)的二維數(shù)組。每個圖形的類型由電腦隨機產(chǎn)生。每種圖形的顏色記錄在一個數(shù)組中。用三個整型變量分別記錄玩家的關(guān)數(shù)、生命值、得分。用兩個整型變量記錄光標(biāo)的位置。用兩個長型變量記錄

4、起始時間和停止時間。功能需求設(shè)計一款簡單C語言游戲,游戲的主要功能是在游戲區(qū)隨機填滿四種圖形(圓形、三角形、正方形和菱形),但開始時橫向和縱向都不能有三個或三個以上相同的圖形相連。通過交換相鄰位置的圖形使盡可能多的圖形相連,即可消去相連圖形(清除前圖形會閃爍),得分為消去相連圖形的個數(shù)。直到限定時間到,結(jié)束一局。程序支持鍵盤操作,不支持鼠標(biāo)操作。在初始界面下按F2可以開始游戲。按F3進入選項菜單,在選項菜單中用戶可以選擇要玩的等級(7X7或8X9),并分別選擇四種圖形的顏色。按ESC可以隨時退出游戲。游戲開始后用戶可以通過上下左右鍵來控制光標(biāo)的位置。按ENTER鍵可以選中一個未選中的圖形,再將

5、光標(biāo)移動到選中圖形的上下或左右圖形上,再按ENTER鍵,即可實現(xiàn)相鄰圖形的交換。如果光標(biāo)指向的圖形已選中,再按ENTER鍵可以取消圖案被選中的狀態(tài)。按F4鍵可以暫停游戲。限定時間到用戶未成功過關(guān)則生命值減一,生命值為零時,游戲結(jié)束。每局結(jié)束,都有文字提示。用戶過關(guān)會顯示“welldone”,本局失敗顯示“tryagain”,游戲結(jié)束顯示“gameover”。性能需求1硬件環(huán)境本程序是用TurboC3.0開發(fā)的,在xp環(huán)境下運行。在Vista操作系統(tǒng)下不可運行。處理器:IntelPentium43.06GX或更高內(nèi)存:256M(推薦)硬盤空間:40GB顯卡:SVGA顯示適配器2軟件環(huán)境操作系統(tǒng):

6、Windows2000/XP開發(fā)軟件:MicrosoftVisualStudio.NET2008數(shù)據(jù)庫:MicrosoftSQLServer2005第二章概要設(shè)計2.1局部數(shù)據(jù)結(jié)構(gòu)利用二維數(shù)組記錄每個圖形的類型和狀態(tài)。每次交換、清除、重新填入圖形,都要改變數(shù)組元素的値。并重新繪制圖形omain()函數(shù)運行后,如果用戶按F3選擇SETTING選項后,調(diào)用函數(shù)setting(),進行用戶設(shè)定,改變參數(shù)的值。當(dāng)用戶按F2選擇START選項后,調(diào)用函數(shù)start(),游戲開始。結(jié)構(gòu)體:structDiamondintx;inty;intlife;inttype;diamond99;/用于鉆石坐標(biāo)定位,

7、判斷消除和類型分配。全局數(shù)組:charscoreup3=0;/記錄分數(shù)時所用各位數(shù)數(shù)組全局變量:intLife1,time1,person;/消去寶石累加之和,生命條數(shù),時間計數(shù),剩余人數(shù)intupnum,downnum,leftnum,rightnum;/上下左右鍵盤響應(yīng)次數(shù)記錄intdiamondnum=3;/初始化寶石數(shù)量intxselect,yselect;/ENTER后位置intx1select,ylselect;/前一次ENTER后位置intflagE=O;/判斷是否響應(yīng)ENTERintmoveselect=0;/判斷是否移動光標(biāo)intLevel=0;/等級標(biāo)志inti1,j1,k

8、1,k2;/選擇模式參數(shù)intPm=0,Pn=0,Pfm=0,Pfn=0,score=0;/記錄光標(biāo)移動所在寶石的位置time_tStart,End;/時間始末參數(shù)2.2全局結(jié)構(gòu)圖2-1模塊2.3函數(shù)模塊分析Voidsetting()用于設(shè)置游戲關(guān)卡和各種圖形的顏色Voidstart()用于開始游戲,Voiddeal()在初始化圖形時,保證最初的圖形不會出現(xiàn)三個或三個以上相同圖形相連。Voidkeys()用于start()中的鍵盤響應(yīng),按上下左右鍵移動光標(biāo),按ENTER鍵選中圖形。Voidgame()用于判斷是否超過限定時間,結(jié)束游戲。Intchange()用于檢測兩個位置的圖形交換后是否出現(xiàn)

9、三個或三個以上相同圖形相連,若有,則記錄應(yīng)該清除的圖形位置,并返回1,表示可以交換。Voidcheck()用于清除相連的圖形,閃爍,并完成圖形的下落和重新生成,并檢查圖形下落后是否有新的相連圖形,若有則記錄應(yīng)清除的圖形,進行下一次清除。Voidsan()用于繪制三角形并填充顏色。Voidju()用于繪制正方形并填充顏色。Voidling()用于繪制菱形并填充顏色。Voidyuan()用于繪制圓形并填充顏色。Voiddraw()用于根據(jù)二維數(shù)組元素的值在相應(yīng)位置繪制相應(yīng)圖形。Voidshow()顯示初始界面。第三章詳細設(shè)計及代碼編寫3.1功能函數(shù)設(shè)計Voidsetting()函數(shù)進行游戲設(shè)定,通

10、過改變變量level的值改變關(guān)卡,通過給記錄顏色的數(shù)組的每個元素的值來改變每種圖形的顏色。Voidstart()函數(shù),開始游戲。根據(jù)level的值確定行列數(shù),畫出網(wǎng)格,調(diào)用random()函數(shù)給記錄圖形類型的二維數(shù)組每個元素賦值,并調(diào)用deal()函數(shù)使初始畫面中沒有三個或三個以上相同圖形相連的情況。根據(jù)每個數(shù)組的值,畫出相應(yīng)位置的圖形。用time()函數(shù)記錄開始時間。做一個循環(huán)。若有鍵盤輸入則調(diào)用keys()函數(shù)鍵盤響應(yīng)。每次按回車后重新輸出分數(shù)。若分數(shù)已達到過關(guān)的分數(shù)則開啟下一關(guān)。再次調(diào)用time()函數(shù)記錄當(dāng)前時間。用兩次時間的差值計算剩余時間,并用bar()函數(shù)畫出時間進度條。Void

11、deal()利用循環(huán)掃描是否有三個或三個以上圖形相連,若有則把重新生成此位置對應(yīng)數(shù)組元素的值,并用遞歸方式調(diào)用deal(),初始化圖形。Voidkeys()首先判斷是否有鍵盤輸入,若有則接受鍵盤掃描碼,若是方向鍵則吧當(dāng)前光標(biāo)位置畫綠色矩形框,并把移動后所在位置畫洋紅色矩形框,表示光標(biāo)移動。若是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)前時間,與初始時間相減

12、判斷限定時間是否已經(jīng)到達。若已到達限定時間則結(jié)束一局。若生命值減一,若生命值變?yōu)橐粍t游戲結(jié)束。Voidchange()掃描是否有相連的圖形,若有則把對應(yīng)的記錄狀態(tài)的數(shù)組元素值改為1,并返回1,并把交換的兩個圖形對應(yīng)數(shù)組元素的值交換,并重新畫出兩個位置的圖形,完成交換。Voidcheck()清除的狀態(tài)數(shù)組元素為1的對應(yīng)圖形,每清除一個圖形分數(shù)加一,重新繪制圖形,再清除,完成閃爍。利用循環(huán),把每列的圖形對應(yīng)數(shù)組元素由下向獲得上面狀態(tài)數(shù)組元素為0類型的值,若首行的元素也被清除則重新隨機生成。從而完成圖形的下落。此函數(shù)中,用循環(huán)函數(shù)判斷上面有多少被清除的圖形,判斷該獲得哪個元素的值。重新利用循環(huán)掃描是

13、否有相連圖形。Voidsan()、voidling()用直線畫出密封圖形,并有floodfill()函數(shù)填充圖形顏色Voidyuan()、voidju()用circle()和rectangle()函數(shù)畫圖并用floodfill()函數(shù)填充顏色。Voiddraw()用switch()語句根據(jù)數(shù)組元素的值畫出相應(yīng)的圖形,避免其他函數(shù)中需要重新畫圖時,書寫的語句過長。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游戲運行模塊核心代碼部分: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();第四章測試設(shè)計4.1測試設(shè)計內(nèi)容在開發(fā)這個軟件系統(tǒng)的過程中,面

20、對著極其錯綜復(fù)雜的問題,人的主觀認識不可能完全符合客觀現(xiàn)實,在本次設(shè)計過程中,我采用循環(huán)測試法,力求在每個階段結(jié)束之前通過嚴(yán)格技術(shù)審查,即每完成一個功能,就進行測試,盡可能早的發(fā)現(xiàn)并糾正差錯,完成模塊測試之后再進行系統(tǒng)測試。在該設(shè)計中,我偏重考慮了當(dāng)用戶輸入的信息出錯時,系統(tǒng)就會出現(xiàn)提示,以便讓用戶知道出錯的原因,并能及時做出修改,所以我站在用戶的角度考慮,盡可能設(shè)想各種邊界條件,如記錄為空,輸入為空,輸入出錯等,以此來發(fā)現(xiàn)錯誤,糾正錯誤,取得了一定的效果。綜上所述,程序在windowsXP下運行正常。清除橫向縱向以及橫縱相連等特殊情況均可正常清除,并正確的下落圖形??拷吔绲南噙B圖形可以正常

21、清除和下落。用戶手冊這是一款簡單C語言游戲,可以在dos、windowsxp、windows2000等操作系統(tǒng)上運行。無需安裝,即可使用。游戲的主要功能是在游戲區(qū)隨機填滿四種圖形(圓形、三角形、正方形和菱形),但開始時橫向和縱向都不能有三個或三個以上相同的圖形相連。通過交換相鄰位置的圖形使盡可能多的圖形相連,即可消去相連圖形(清除前圖形會閃爍,清除后會發(fā)出聲音),得分為消去相連圖形的個數(shù)。直到限定時間到,結(jié)束一局。程序支持鍵盤操作,不支持鼠標(biāo)操作。在初始界面下按F2可以開始游戲。按F3進入選項菜單,在選項菜單中用戶可以選擇要玩的等級(7X7或8X9),并分別選擇四種圖形的顏色。按ESC可以隨時

22、退出游戲。游戲開始后用戶可以通過上下左右鍵來控制光標(biāo)的位置。按ENTER鍵可以選中一個未選中的圖形,再將光標(biāo)移動到選中圖形的上下或左右圖形上,再按ENTER鍵,即可實現(xiàn)相鄰圖形的交換。如果光標(biāo)指向的圖形已選中,再按ENTER鍵可以取消圖案被選中的狀態(tài)。按F4鍵可以暫停游戲。限定時間到用戶未成功過關(guān)則生命值減一,生命值為零時,游戲結(jié)束。每局結(jié)束,都有文字提示。用戶過關(guān)會顯示“welldone”,本局失敗顯示“tryagain”,游戲結(jié)束顯示“gameover”。第五章總結(jié)終于到了總結(jié)的部分,好開心哦??粗\行正常的程序,心里涌出一股強烈的成就感。這是第一次真正意義上的獨立設(shè)計程序,最重要的是,它達到了我預(yù)期的效果,甚至可以毫不客氣的說,它完成的比我期望的要更好??偹銢]有白白辜負這一個多星期以來的期待,雖然真的是讓我頭疼到晚上都沒睡好。接下來,談?wù)勎业某绦驈拈_始到現(xiàn)在的完美蛻變歷程吧。最開始心中充滿疑問,對自己的實力頗為懷疑,對這種圖形的處理沒有信心。以前只編過一些比較簡單的字符處理程序,編這樣一個比較難的程序,出現(xiàn)了很多錯誤,有時為了一個錯誤調(diào)試幾天幾夜,但是只要不放棄,最終還是成功了。一步一步地完成了程序的一些功能,最后終于做出了符合要求的程序。這次課設(shè)鍛煉了我的自學(xué)能力。我有時對函數(shù)的理解是錯誤的導(dǎo)致了程序的錯誤,在老師的指導(dǎo)下我改正了錯誤,加深了理解。這次課設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論