貪吃蛇項(xiàng)目報(bào)告.doc_第1頁
貪吃蛇項(xiàng)目報(bào)告.doc_第2頁
貪吃蛇項(xiàng)目報(bào)告.doc_第3頁
貪吃蛇項(xiàng)目報(bào)告.doc_第4頁
貪吃蛇項(xiàng)目報(bào)告.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

程序設(shè)計(jì)基礎(chǔ)項(xiàng)目報(bào)告項(xiàng) 目 名 稱貪吃蛇1 項(xiàng)目功能簡要說明:貪吃蛇游戲,該有游戲主要指通過控制小蛇的移動(dòng)方向,來吃掉隨機(jī) 生成的食物,從而使小蛇達(dá)到一個(gè)成長的效果。小蛇每吃掉一次食物都會(huì)加相應(yīng)得分?jǐn)?shù)。當(dāng)小蛇碰到自身或者碰到墻就會(huì)結(jié)束游戲。2 程序基本算法的文字描述(500字)(一)函數(shù)頭必不可少要包含TC里面的圖形庫()、()里面定義了五種類型、一些宏和通用工具函數(shù)、()這是一個(gè)頭文件,里面包含了很多BIOS和DOS調(diào)用函數(shù)。首先要定義四個(gè)方向鍵和一個(gè)退出鍵的掃描碼;(二)分別定義食物和小蛇的結(jié)構(gòu)體;(三)聲明調(diào)用的函數(shù);(四)主函數(shù)(圖形驅(qū)動(dòng)、開始畫面、玩游戲具體過程、圖形結(jié)束;)(五)圖形驅(qū)動(dòng):初始化圖形系統(tǒng);(六)開始畫面,左上角坐標(biāo)為(50,40),右下角坐標(biāo)為(610,460)的圍墻。設(shè)置顏色、設(shè)置線型、用兩個(gè)for循環(huán)分別畫出上下、左右圍墻;(七)玩游戲具體過程:隨機(jī)發(fā)生器控制食物出現(xiàn)位置,1表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物,在沒有按鍵的情況下,蛇自己移動(dòng)身體,當(dāng)遇見食物之后會(huì)吃掉食物起身增長,然后食物還要隨機(jī)生成,每吃一次食物分?jǐn)?shù)就會(huì)長十,但分?jǐn)?shù)為偶數(shù)的時(shí)候小蛇是一種顏色,否則為另外一種顏色,當(dāng)分?jǐn)?shù)是五十的整數(shù)倍時(shí)會(huì)出現(xiàn)good!的提示,此時(shí)小蛇為綠色,當(dāng)分?jǐn)?shù)是五十的整數(shù)倍時(shí)食物為黃色,否則為另一種顏色。當(dāng)分?jǐn)?shù)為100的倍數(shù)后小蛇的速度就會(huì)增長。當(dāng)吃到食物之后小蛇會(huì)自動(dòng)長一截,而在沒吃到食物的時(shí)候,小蛇向前走,最后一節(jié)會(huì)被磨掉,吃到食物就不摸了,當(dāng)小蛇遇到自己或者墻都會(huì)死亡也就是結(jié)束游戲;(八)圖形結(jié)束,輸出成績。3. 該項(xiàng)目用到的知識的總結(jié)(200字)調(diào)用函數(shù),for循環(huán),while循環(huán),if else 語句,隨機(jī)函數(shù),控制坐標(biāo),輸出圖形,背景顏色,控制形狀顏色線性,等等4. 關(guān)鍵步驟的流程圖(三個(gè)流程圖以上)開始定義食物的結(jié)構(gòu)體struct Foodint x;-食物的橫坐標(biāo)int y;-食物的縱坐標(biāo)int yes;-判斷是否要出現(xiàn)食物的變量food;-食物的結(jié)構(gòu)體定義小蛇的結(jié)構(gòu)體被調(diào)用函數(shù)void Init(void);-圖形驅(qū)動(dòng)void Close(void);-圖形結(jié)束void DrawK(void);-開始畫面void GameOver(void);-結(jié)束游戲void GamePlay(void);-玩游戲具體過程void PrScore(void);-輸出成績void main(void)Init();/*圖形驅(qū)動(dòng)*/DrawK();/*開始畫面*/GamePlay();/*玩游戲具體過程*/Close();/*圖形結(jié)束*/struct Snakeint xN;int yN;int node;/*蛇的節(jié)數(shù)*/int direction;/*蛇移動(dòng)方向*/int life;/* 蛇的生命,0活著,1死亡*/snake;結(jié)束整個(gè)游戲大體制作過程開始setcolor(9);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設(shè)置線型*/for(i=50;i=600;i+=10)/*畫圍墻*/rectangle(i,40,i+10,49); /*上邊*/rectangle(i,451,i+10,460);/*下邊*/for(i=40;i0snake.direction1snake.x0+=10;break;2snake.x0-=10;break;3snake.y0-=10;break;4snake.y0+=10;break;11i=3snake.xi=snake.x0&snake.yi=snake.y0是GameOver();/*顯示失敗*/snake.life=1;break;否snake.x0595|snake.y0455是GameOver();/*本次游戲結(jié)束*/snake.life=1; /*蛇死*/否/*蛇是否撞到墻壁*/breaksnake.life=1是否*以上兩種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始*/snake.x0=food.x&snake.y0=food.ysetcolor(0);/*把畫面上的食物東西去掉*/rectangle(food.x,food.y,food.x+10,food.y-10);snake.xsnake.node=-20;snake.ysnake.node=-20;/*新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置*/snake.node+;/*蛇的身體長一節(jié)*/food.yes=1;/*畫面上需要出現(xiàn)新的食物*/score+=10;PrScore();/*輸出新得分是否/*吃到食物以后*/2是否2if(score%20=0) setcolor(MAGENTA); /*畫出蛇*/else setcolor(LIGHTRED); if(score%50=0&score!=0) setcolor(GREEN); settextstyle(0,0,3); outtextxy(80,16,good!);for(i=0;i0;i-)/*蛇的每個(gè)環(huán)節(jié)往前移動(dòng),也就是貪吃蛇的關(guān)鍵算法*/snake.xi=snake.xi-1;snake.yi=snake.yi-1; 6. 項(xiàng)目特色(延伸功能、附加功能)分?jǐn)?shù)為偶數(shù)的時(shí)候小蛇是一種顏色,否則為另外一種顏色,當(dāng)分?jǐn)?shù)是五十的整數(shù)倍時(shí)會(huì)出現(xiàn)good!的提示,此時(shí)小蛇為綠色,當(dāng)分?jǐn)?shù)是五十的整數(shù)倍時(shí)食物為黃色,否則為另一種顏色。當(dāng)分?jǐn)?shù)為100的倍數(shù)后小蛇的速度就會(huì)增長。7. 收獲與心得體會(huì)通過親自動(dòng)手動(dòng)腦完成這個(gè)小游戲,不僅復(fù)習(xí)了一下自己學(xué)過的很多知

溫馨提示

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

最新文檔

評論

0/150

提交評論