




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、貪吃蛇游戲的設計文檔目錄錯誤!未定義書簽。1功能需求 錯誤!未定義書簽。2非功能需求 錯誤!未定義書簽。錯誤!未定義書簽。1. 實際思路 錯誤!未定義書簽。2,結構設計 錯誤!未定義書簽。( 1) , main(), 主函數; 錯誤!未定義書簽。( 2) , init() , 圖形化驅動函數 錯誤!未定義書簽。( 3) ,help(), 幫助信息函數 錯誤!未定義書簽。( 4) ,drawfence(), 周圍墻壁函數 錯誤!未定義書簽。( 5) ,printscore(),得分顯示函數 錯誤!未定義書簽。( 6) , playgame(),游戲控制函數 錯誤!未定義書簽。( 7) , gam
2、eover(),游戲結束函數 錯誤!未定義書簽。( 8) ,closegraph(),關閉圖形驅動函數 錯誤!未定義書簽。錯誤!未定義書簽。1,help() 函數流程圖 錯誤!未定義書簽。2,drawfence() 函數流程圖 錯誤!未定義書簽。3,printscore() 函數流程圖 錯誤!未定義書簽。4,playgame() 函數流程圖 錯誤!未定義書簽。5,gameover() ,游戲結束函數 錯誤!未定義書簽。錯誤!未定義書簽。1,功能測試2,性能測試錯誤! 未定義書簽。錯誤! 未定義書簽。錯誤! 未定義書簽。3,測試結A'需求分析1功能需求貪吃蛇游戲的游戲規(guī)則是:游戲開始時,
3、在一個密閉的空間里,貪吃蛇可以通過方向鍵進行方向的變化。屏幕上隨機的出現食物,貪吃蛇在運動的過程中蛇頭可以吃掉出現的的食物。吃掉食物后,蛇的身體會增長一節(jié)。當蛇的身體碰到四周的墻壁或者是自己的身體時,游戲會結束!并且, 在屏幕的上方有一個分數牌顯示,游戲開始時分數為0,每當蛇吃掉一個食物,分數會增加10 分。而在游戲的過程中,玩家可以按“ ESC按鍵隨時退出游戲。2非功能需求( 1)界面友好,圖形界面,游戲開始前有游戲的簡單使用說明,方便玩家使用;( 2)具有較好的容錯能力,玩家在游戲過程中,除了規(guī)定的按鍵外,其他按鍵均忽略,不予處理;( 3)發(fā)布游戲時,將圖形驅動加載到程序中,使系統具有良好
4、的可擴展性和平臺適應性,可在任何PC機上運行。二、系統設計1. 實際思路( 1) ,貪吃蛇游戲的設計,第一步想到的當然是畫出貪吃蛇,從而可以想到定義一個“蛇”的結構體的類型,這個結構體中包括:蛇的坐標,蛇的長度,蛇運動的方向;蛇的生命。而蛇的運動可以通過兩種結構來實現:數組和鏈表,我使用了簡單但不簡潔的數組來實現。蛇的運動方向可以通過選擇結構來實現控制蛇的運動方向。( 2) ,蛇已經構造出來了,第二步要構造的當然是蛇要吃的食物了。和構造蛇一樣,我們同樣可以通過一個結構體來構造食物。這個食物的結構體中包括:食物的坐標和食物是否生成。而食物的出現又是隨機的,所以我們可以通過調用隨機生成函數來實現這
5、一功能。( 3) ,蛇和食物有了,就要設計蛇運動的區(qū)域了,我們可以同過調用圖形化的函數,運用循環(huán)來實現游戲墻壁的設計。( 4) ,而游戲最重要的部分就是:怎樣驅動蛇的運動?我們首先可通過! kbhit ()函數,來接收是否有鍵盤輸入蛇運動的方向。在沒有鍵盤輸入的情況下,蛇的運動就要通過將畫蛇的數組不停地進行交換來實現的。蛇在吃完了食物之后身體的增加是通過增加數組的長度來實現的。( 5)最后要實現的就是在玩游戲過程中的分數的增加。這也是運用了圖形化函數來實現他的顯示,同時通過一個分支結構來控制游戲的每個階段的不同的分數的增加。2,結構設計“貪吃蛇”游戲的核心的部分是游戲的控制部分,也就是我們在玩
6、游戲時,不斷地通過改變蛇頭的反向來吞噬食物的過程。并且, 在游戲的過程中還要顯示玩家的得分。為了實現這些功能,就需要各個小模塊的功能支持。具體的各個功能模塊如下:圖形驅動;顯示幫助信息;畫周圍的墻壁;顯示分數;控制游戲;結束游戲;關閉游戲圖形驅動。(1) , main(), 主函數;在mian ()函數之前我們已經對要用到的各個數據進行了宏定義。包括:蛇的最大節(jié)數;方向鍵;循環(huán)變量;接收按鍵值的變量;分數;還有蛇的速度。而在main()函數中我們只需要調用幾個要使用的自定義的函數即可。包括:圖形驅動函數:init () ;顯示幫助函數:help() ;開始的畫面:drawfence();玩游戲
7、函數playgame();圖形結束函數:closegame()。(2) , init() , 圖形化驅動函數由于貪吃蛇游戲采用的圖形化界面。在屏幕作圖之前嗎,必須根據顯示器適配器的種類將顯示器設置成為某種圖形模式,在未設置時,默認的屏幕為文本模式, 此時, 圖形化函數均不能工作。所以要用到圖形初始化函數initgraph ()和清除圖形屏幕函數cleardevice ()。其中, initgraph ()函數的初始化是:void far initgraph(int far *gdriver,int far *gmode,char *path);其中第一個參數是圖形驅動器;第二個參數是模式變量;
8、第三個變量是圖形驅動程序所在的目錄里路徑。(3) , help(), 幫助信息函數游戲開始之后,首先要顯示玩貪吃蛇的相關幫助信息,包括:游戲名稱;游戲的控制鍵;退出鍵;以及游戲的相關的介紹,然后按任意鍵開始游戲。由于已經將界面初始化為圖形模式,所以輸出要用到圖形文本的輸出,而圖形文本的顯示主要涉及三個函數:1)作圖顏色設置函數setcolor ();函數原型是:void far setcolor(int color); 參數 color 是顏色的代表值。2) 字形設置函數settextstyle ();函數原型是:void far settextstyle(int font,int direc
9、tion,int charsize);其中參數font 是用來設置輸出文本的字形;direction 用來設置文本的方向;charsize 是用來設置文本的大小。3) 文本顯示函數outtextxy ();函數的原型是:void far outtextxy(int x,int y,char far *textstring);參數 x 是文本的起始橫坐標,y 是文本的起始縱坐標;參數textstring 是待輸出字符串的首地址。用這三個函數就可以在help ()函數中輸出有關的幫助信息。(4) , drawfence(), 周圍墻壁函數本游戲中的蛇運動的范圍是一個矩形框圍成的四面墻壁。畫出墻面,
10、主要用三個函數:1) , setcolor () ,作圖顏色設置函數;2) , setlinestyle () ,線性設置函數;函 數 原 型 : void far setlinestyle(int linestyle,unsigned pattern,int thickenss) ; 參數 linestyle 代表線型;參數 pattern 在定義線型時起作用,一般取值為0; thickness 的取值只有兩種:1(NORM_WIDT代葭1點寬,3 (THICK_WIDTH代表 3 點寬。3) , rectangle () ,畫矩形框函數;函數原型:void far rectangle(in
11、t left,int top,int right,int bottom);其中參數left 和 top 分別是矩形的左上角的橫縱坐標;參數right 和 bottom分別是矩形的右下角的橫縱坐標。在具體實現時,是通過循環(huán)來實現的。(5) , printscore(), 得分顯示函數分數的顯示是通過對一個變量的值以圖形化的形式顯示出來,同時采用某種顏色為背景來襯托成績,義突出其的顯示效果。分數的顯色主要涉及以下六個函數:1) , setfillstyle () ,設置填充效果函數void far setfillstyle(intpattern,int color), 其中參數pattern為填充
12、的模式,參數color 為填充的顏色。2), bar ()畫條形窗口函數函數原型:void far bar bar(int left,int top,int right,int bottom) ;和函數 retangle ()函數類似。3) , setcolor ();4) , stetextstyle ();5) , sprintf () ,格式輸出函數;函數原型:int sprint(char *str,char *format,variable-list);函數的主要功能將按格式化規(guī)定的內容寫入的str 指向的字符串中,返回值等于寫入的字符個數。6) , outtextxy ();( 6
13、) , playgame(), 游戲控制函數游戲控制函數是貪吃蛇游戲的核心部分,由于控制蛇的移動和食物的出現好,以及得分的計算。函數可分為一下的步驟來實現:1) 初始化蛇的相關信息;2) 初始化食物的相關信息;3) 輸出初始化分數;4) 當玩家沒有按“ ESC鍵時,一直重復以下各步;5) 當玩家不按任何鍵時,一直重復6 13 各步驟;6) 在屏幕畫出食物;7) 計算出蛇的每一節(jié)在屏幕中的位置;8) 根據蛇的移動方向,計算出下一步蛇頭的坐標位置;9) 判斷蛇頭是不是撞上了自己的身體的任何一節(jié),如果是,游戲結束;10) 判斷蛇頭是不是撞到餓了任何一面的墻壁了,如果是,游戲結束;11) 若(9) (
14、 10)都未發(fā)生,說明蛇活著,判斷蛇是否吃到了食物,如果吃到了食物,則要先清除食物,并設置下一個食物的出現;同時,還 要將蛇的身體增長一節(jié);屏幕顯示的分數還要增加。12) 將蛇在屏幕顯示,然后游戲延遲一會兒,給玩家一點反應時間;13) 蛇在移動的過程中,蛇頭不斷前進,末尾一節(jié)不斷清除,這樣才能保證蛇在移動的過程中的正確性;14) 當玩家按下一個鍵時,接收該按鍵,并判斷是不是“ ESC;如果是,則退出游戲,如果不是則進行(15)步的判斷;15) 判斷當前按鍵的方向是否與蛇頭的方向相反,如果相反,則不做處理,只要不是相反的,則就改變蛇的移動方向。16) 回到(14)步去執(zhí)行,一直循環(huán)往復,直到游戲
15、結束。( 7) , gameover(), 游戲結束函數這一模塊,是在蛇頭碰到了自己的身體的任何一節(jié),或者是撞到了墻壁時,游戲結束時,顯示在屏幕上的。用到的函數與help ()中的用的文本輸出函數一樣。同時,結束是,還要調用分數顯示函數。( 8) , closegraph(), 關閉圖形驅動函數當游戲結束界面顯示完成后,要正式退出圖形模式。退出圖形模式的函數為closegraph () 。函數原型:void far closegraph ( void ) 。在關閉圖形模式之前應該線讓屏幕暫停一下,所以要調用getch ()函數。三、系統實現注:流程圖的繪制使用的是:Microsoft Offi
16、ce Visio 20101, help() 函數流程圖2, drawfence() 函數流程圖3, printscore() 函數流程圖4, playgame() 函數流程圖( 1) ,貪吃蛇游戲的控制函數執(zhí)行的流程圖(2), playgame ()函數的判斷并畫出食物的程序片段(3), playgame ()函數的計算蛇的每一節(jié)的位置的程序片段(4) ,playgame ()函數的計算出蛇頭的位置程序片段(5), playgame ()函數的判斷是否蛇頭撞到自身及蛇頭撞到墻壁的程序片段(6), playgame ()函數的判斷蛇是否吃到食物的程序片段(7), playgame ()函數的畫
17、出蛇的每一節(jié)的程序片段(8), playgame ()函數的消除蛇的最后一節(jié)的程序片段5, gameover(),游戲結束函數四、系統測試該部分主要編寫測試計劃,記錄測試的過程和結果,并對測試結果進行分析 總結,優(yōu)化系統。1,功能測試測試功能測試結果用例1測試開始游戲和幫助信息打開游戲主界囿,回向顯示游戲名稱和相關的游戲幫助用例2測試蛇的運動屏幕顯示貪吃蛇在屏幕運動用例3測試控制蛇的方向鍵通過鍵盤上,按鍵的指揮,蛇能夠正確地移動用例4測試食物是否顯示游戲開始后,屏幕上顯示食物出現用例5測試蛇頭吃食物功能當蛇頭碰到食物后,蛇的身體增長一節(jié),食物消失,并在其它地方出現新的食物用例6測試分數顯示功能在屏幕上方有分數的顯示, 并 且每當貪吃蛇吃到食物時,分 數會增加。用例7測
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自然災害概論知到課后答案智慧樹章節(jié)測試答案2025年春防災科技學院
- 江西工商職業(yè)技術學院《地基處理新技術》2023-2024學年第一學期期末試卷
- 甘肅省白銀市第九中學2025年高三下學期第一次月考物理試題含解析
- 公交車輛車身廣告對城市形象的影響
- 公共交通節(jié)能減排制度
- 美萊醫(yī)療美容機構問卷調查表
- 管道標識施工方案
- 噴漿護坡支護施工方案
- 河南省鄭州市中牟縣2024-2025學年高一上學期數學期末測評數學試卷(解析版)
- 人工清淤泥施工方案
- 西安市城鎮(zhèn)基本醫(yī)療保險特殊藥品治療(備案計劃)申請表【模板】
- JJG 700-2016氣相色譜儀
- 可編輯的中國地圖
- 婚禮開場白主持詞15篇
- 部編人教版道德與法治五年級下冊全冊課時練習講解課件
- 識讀齒輪精測報告課件
- 《農村土地承包法》課件
- 無人機結構與系統-第1章-無人機結構與飛行原理課件
- 海蒂 讀書推薦會課件
- 《TV背光中光學膜片介紹及常見光學問題分析》復習課件
- 二次電纜敷設、接線作業(yè)指導書
評論
0/150
提交評論