freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

貪吃蛇游戲的實現(xiàn)(編輯修改稿)

2025-02-04 11:03 本頁面
 

【文章內(nèi)容簡介】 題目 。 背景內(nèi)容 貪吃蛇游戲是一個經(jīng)典小游戲,一條蛇在封閉圍墻里,圍墻里隨機出現(xiàn)一個食物,通過按鍵盤四個光標(biāo)鍵控制蛇向上下左右四個方向移動,蛇頭撞倒食物,則食物被吃掉,蛇身體長一節(jié),同時記 10 分,接著又出現(xiàn)食物,等待蛇來吃,如果蛇在移動中撞到墻或身體交叉蛇頭撞倒自己身體游戲結(jié)束 [2]。 研究方案 這個程序的關(guān)鍵是 表示蛇的圖形以及蛇的移動。用一個小 @表示蛇的一節(jié)身體,身體每長一節(jié),增加一個 @。移動時必須從蛇頭開始,如果不按任何鍵,蛇自行在當(dāng)前方向右前移,當(dāng)游戲者按了有效的方向鍵后,蛇頭朝著指定的方向移動,一步移動一節(jié)身體,所以當(dāng)按了有效的方向鍵后,先確定蛇頭的位置,然后蛇身體隨著蛇頭移動,圖形的實現(xiàn)是從蛇頭的新位置開始畫出蛇,在界面中央有個靜止不動的食物,用戶通過鍵盤來控制蛇的走向,當(dāng)蛇吃到食物時,分?jǐn)?shù)增加十分,界面開始更新,蛇的身體增加一節(jié),食物的位置變化一次,當(dāng)蛇碰到界面時,游戲自動結(jié)束,顯示用戶最后的分?jǐn)?shù)。 第 二章 概述 程序流程圖 圖 1所示: 2 圖 1 程序流程圖 第三章 設(shè)計的具體實現(xiàn) InitInstance 函數(shù) 函數(shù)原型: void Csnake::InitInstance()。 功能:初始化游戲界面,初始化蛇身,將方向上下左右分別用 4個鍵表示。 參數(shù):無。 返回值:無。 開始 初始化界面和蛇身 放置食物 蛇開始運動 蛇吃到食 ? 蛇長大 蛇死亡 ? 繼續(xù) ? 退出界面 N N Y N Y 游戲者按鍵選擇 Y 3 工作方式:根據(jù)命令,調(diào)用相應(yīng)函數(shù),建立內(nèi)存鏈表,將蛇身坐標(biāo)壓入隊列,并將蛇身作 為一個數(shù)組。 要求:完成初始化,界面中給出蛇的相關(guān)信息 函數(shù) 函數(shù)原型: bool Csnake::UpdataGame()。 功能:獲取用戶按鍵信息,產(chǎn)生食物,并隨機產(chǎn)生食物的相關(guān)坐標(biāo),判斷在蛇沒有死亡的 狀態(tài)下是否碰到食物,如果碰到則加 10分,蛇身增長一節(jié),返回值定為 true,如果蛇在移動過程中,撞到墻壁或身體交叉(蛇頭撞到自己的身體),返回值定為 false,并且輸出用戶之前所得的分?jǐn)?shù)。 參數(shù):蛇的橫坐標(biāo) r,蛇的列坐標(biāo) l,記錄用戶成績 score,獲取用戶按鍵信息 chioce。 返回值: true或者是 false。 工作方式:獲取用戶輸入按鍵信息,并 且根據(jù)用戶輸入按鍵信息作為關(guān)鍵字,進行判斷。 要求:自動使蛇開始運動,并且及時獲取用戶的按鍵信息,隨時判斷是否在移動過程中碰到墻壁或者身體交叉,給出結(jié)束信息。 main 函數(shù) 函數(shù)原型: int main() 功能:程序的入口點,總控函數(shù)。 參數(shù):沒有死亡的信息 noDead。 返回值: 0。 工作要求:依次調(diào)用初始化界面的成員函數(shù),更新游戲界面的成員函數(shù),顯示游戲界面的 成員函數(shù)。 要求:調(diào)用程序信息。 Csnake 函數(shù) 函數(shù)原型: Csnake(int n)功能:初始化游戲界面大小。 參 數(shù): int n。 返回值:無。 4 getSymbol 函數(shù) 函數(shù)原型: char getSymbol(const Cmpamp。 c)const。 功能:獲取指定坐標(biāo)點上的字符。 參數(shù): Cmpamp。 c。 返回值: snakeMap[][]。 isDead 函數(shù) 函數(shù)原型: bool isDead(const Cmpamp。 cmp)。 功能:判斷是否死亡。 參數(shù): Cmpamp。 cmp。 返回值: getSymbol(cmp)==39。@39。 || == row1 || == 0 || == line1 || == 0。 工作要求:判斷條件,從而決定返回值。 第四章 調(diào)試及解決方法 此程序的在調(diào)試過程中曾先后出現(xiàn)蛇不吃仔等問題, 比如: 問題 1:速度太快。 解決方法:循環(huán) delay。 for(d=0。d4。d++) delay(GAME_SPEED)。 問題 2:食物可能出現(xiàn)在蛇身上。 解決方法:依次判斷,若重疊則重新生成食物。 void createFood() { int i。 Label; =left+10*((int)rand()%11)。 =top+10*((int)rand()%11)。 for(i=0。i=。i++) { if([i].x==amp。amp。[i].y==)goto label。 }} 5 第五 章 測試結(jié)果 圖 2 程序開始 ,初始化界面 ,調(diào)用函數(shù)自動生成蛇和食物之后 ,蛇自動向右走 圖 3 6 圖 4 圖 5 7 通過方向鍵來控制蛇的走向 圖 6 游戲結(jié)束輸出最終成績 第六 章 設(shè)計新的體會 在設(shè)計這個程序中我主要學(xué)會了如何運用以下有關(guān) C語言和 C++的知識。 1) 函數(shù)定義是要做到顧名思義是很重要的,它對讀程序的人正確認(rèn)識程序十分重要,在修改這個程序的過程中也能很快找到程序各模塊的作用,大大增加了程序的可讀性。 2) 分析函數(shù)先從 main()函數(shù)入手。 Main()函數(shù)是 C++源程序編譯時的開始, 從 main()函數(shù)開始讀函數(shù)可將其他函數(shù)的功能理解得更透徹。 3) 在做程序的時候先列框架,將這個
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1