![c語言貪吃蛇課程設(shè)計報告_第1頁](http://file4.renrendoc.com/view/15de38aca6c52e4c4023be3f3a12882b/15de38aca6c52e4c4023be3f3a12882b1.gif)
![c語言貪吃蛇課程設(shè)計報告_第2頁](http://file4.renrendoc.com/view/15de38aca6c52e4c4023be3f3a12882b/15de38aca6c52e4c4023be3f3a12882b2.gif)
![c語言貪吃蛇課程設(shè)計報告_第3頁](http://file4.renrendoc.com/view/15de38aca6c52e4c4023be3f3a12882b/15de38aca6c52e4c4023be3f3a12882b3.gif)
![c語言貪吃蛇課程設(shè)計報告_第4頁](http://file4.renrendoc.com/view/15de38aca6c52e4c4023be3f3a12882b/15de38aca6c52e4c4023be3f3a12882b4.gif)
![c語言貪吃蛇課程設(shè)計報告_第5頁](http://file4.renrendoc.com/view/15de38aca6c52e4c4023be3f3a12882b/15de38aca6c52e4c4023be3f3a12882b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言課程設(shè)計報告專業(yè)學生姓名班級學號完成日期二、所需數(shù)據(jù)結(jié)構(gòu)分析1、所需函數(shù)模塊void begin(); /void start(); /void init();void setfoodcrd();void showfood();void snakemove();void judgeslod();voidjudgesef();void showsnake();void changeskdir();/void gameover();2、蛇及食物數(shù)據(jù)結(jié)構(gòu)typedef struct/int x;int y;COOR;定義一個結(jié)構(gòu)體表示坐標、游戲規(guī)則需求1、在打開程序后,由現(xiàn)選擇界面,里面包含難
2、度選擇,其中難度選擇能夠使程序由現(xiàn)相應的游戲難度。2、開始游戲后, W A S D 鍵控制貪吃蛇的移動方向3、當貪吃蛇向一個方向移動時,不能立刻向反方向移動。4、貪吃蛇撞到的自己的身體或者撞到墻時,游戲結(jié)束,并輸由“GAME OVER!5、貪吃蛇吃到一個食物后,由現(xiàn)白色閃爍一次,身體隨之增加一個單位長度。登陸界面鼠標移動事件/初始化游戲/ 設(shè)置食物要由現(xiàn)的坐標/ 在相應的坐標畫由食物/ 移動蛇,實際就是改變蛇各節(jié)的坐/標/ 判斷蛇是否撞墻或者撞到自己/ 判斷蛇是否吃到食物了/ 在屏幕上畫由蛇接受用戶輸入,改變蛇的前進方向/游戲結(jié)束struct FOOD 定義結(jié)構(gòu)體,來存儲食物的相關(guān)信息COOR
3、 crd; / 食物由現(xiàn)的坐標int flag; /食物的狀態(tài),1表示食物還沒被吃,0表示食物被吃了C語言課程設(shè)計報告food;struct SNAKE/定義結(jié)構(gòu)體,來存儲蛇的相關(guān)信息COOR crdSIZEMAX;int node;DIR dir;snake;3、游戲流程圖100 保存蛇的每個結(jié)數(shù)的坐標,最多有 節(jié)/保存蛇當前節(jié)數(shù) 當前蛇行進的方向開始圖形界面幫始化進入游戲難度選擇界面 講入游戲,界而從鍵盤讀入操作信息1.主函數(shù)各類消息判斷并作相應的處理蛇關(guān)閉游戲,結(jié)束三、所需核心算法分析void main()/主函數(shù)導入圖片initgraph(640, 640);loadimage(&im
4、g0,/denglu3.jpg);10adimage(&img1, a1.jpg);10adimage(&img2, a2.jpg);10adimage(&img3, b1.jpg);10adimage(&img4, b2.jpg);10adimage(&img5, c1.jpg);10adimage(&img6, c2.jpg);10adimage(&img7, beijing.jpg);begin();/登陸界面init();/初始化游戲whi1e(1)whi1e(!kbhit()if (!food.f1ag)setfoodcrd();showfood();judges1od();judg
5、esef();snakemove();Sleep(speed);changeskdir();2.圖形初始化void init()/ 初始化游戲putimage(0, 0, &img7);setbkcolor(RGB(124,107,7);food.flag = 0;snake.crd0.x = 80+ SNAKELEN;snake.crd0.y = 155;snake.crd1.x = 80;snake.crd1.y = 155;snake.node = 2;snake.dir = right;3.讀入操作信息的處理void snakemove()int i;for (i=snake.node
6、; i0; i-)snake.crdi.x = snake.crdi-1.x;snake.crdi.y = snake.crdi-1.y;switch (snake.dir)case up:snake.crd0.y -= SNAKELEN;break;case down:snake.crd0.y += SNAKELEN;break;case left:snake.crd0.x -= SNAKELEN;break;case right:snake.crd0.x += SNAKELEN; showsnake();四、關(guān)鍵函數(shù)介紹.貪吃蛇鏈表用鏈表的節(jié)點表示蛇,移動的時候增加一個頭節(jié)點隱藏一個尾節(jié)點
7、,吃食物只需增加一個頭節(jié)點。.Putimage ()函數(shù)用數(shù)組讀入圖片信息, loadimage ()函數(shù)載入圖片,然后用 putimage函數(shù)顯示圖片,實現(xiàn)圖形界面。.GetMouseMsg() 函數(shù)鼠標經(jīng)過響應,改變按鈕的狀態(tài),美化圖形界面。.mkLButton 函數(shù)實現(xiàn)鼠標點擊響應,使游戲從登陸界面跳轉(zhuǎn)到游戲界面。. rectangle ()函數(shù)功能:畫由蛇身和食物用 法:rectangle(food.crd.x,food.crd.y,food.crd.x,food.crd.y);6.outtextxy ()功能:在指定位置顯示一字符串用 法:void far outtextxy(int
8、 x, int y, char *textstring);五、測試與調(diào)試.最初的時候,不知到要怎么編寫有圖形界面的貪吃蛇,在網(wǎng)上找了一些關(guān)于圖形界面編程的教案, 發(fā)現(xiàn)還要裝一個 EasyX的函數(shù)庫。 裝上去后,花了一段時間去學習函數(shù)庫里的函數(shù)應用。.一開始只實現(xiàn)了簡單的蛇的運動,還有很多bug ,但經(jīng)過調(diào)試,特別是怎么吃到食物,并且蛇身增長的地方花了好多時間,后來 bug基本被我由,蛇能吃到食物了。.接下去新建了一個文件,實現(xiàn)蛇的難度選擇界面,這個比較簡單,實現(xiàn)其來 不是很難。但是要把兩個文檔連接起來毫無頭緒。.和同年級的同學交流了一下,終于知道應該重新加載圖形界面,通過查閱技術(shù)文檔,還是解決了這個難題。心情大好O( n _ n )O六、心得與體會通過一個多月的學習,對c語言有了更深一步的了解。從一開始的什么都不會,自己一點點慢慢的摸索。發(fā)現(xiàn)書本上學到的東西還是很不夠的,還有好多東西需要我課外的學習。對于貪吃蛇,知道了它的實現(xiàn)原理,學會了對程序的模塊設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計的簡單分析。并通過源碼分析講述了各個模塊的實現(xiàn)方法。在幾個模塊的實現(xiàn)過程中滲透了部分圖形功能函數(shù)。通過本文的編寫過程 ,掌握了以下幾點知識點:(1 )圖形系統(tǒng)的初始化和關(guān)閉各種畫圖函數(shù)的使用結(jié)構(gòu)體的定義數(shù)組定義及應用函數(shù)嵌套及調(diào)用鍵盤操作總的來說,編程還是一個很需要耐心的工作,特別是有bug我不由來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Piperidine-C2-piperazine-Boc-生命科學試劑-MCE-6657
- 10-S-Hydroxy-9-R-hexahydrocannabinol-生命科學試劑-MCE-1969
- 二零二五年度店鋪轉(zhuǎn)租合同(含租金遞增機制)
- 2025年度考研培訓課程資源包及后續(xù)就業(yè)指導服務(wù)合同
- 2025年度環(huán)境保護法律事務(wù)咨詢服務(wù)合同
- 2025年度非全日制用工勞動協(xié)議書解除條件
- 2025年度足浴中心員工勞動合同與顧客服務(wù)標準
- 2025年度洗浴場所員工薪酬福利保障合同
- 2025年度車庫購買及車位租賃與轉(zhuǎn)讓合同
- 材料采購包安裝合同
- 律師辦理刑事案件基本流程及風險防范課件
- TQGCML 2624-2023 母嬰級空氣凈化器 潔凈空氣和凈化等級技術(shù)要求
- 潮汕民俗文化科普知識講座
- 睡眠障礙護理查房課件
- 金融工程.鄭振龍(全套課件560P)
- 英語演講技巧和欣賞課件
- 【員工關(guān)系管理研究國內(nèi)外文獻綜述2800字】
- 六年級語文下冊閱讀及參考答案(12篇)
- 蘇教版(蘇少版)九年級美術(shù)下冊全冊課件
- 2022年江蘇省鹽城市中考英語試題及參考答案
- 中國文化簡介英文版(ChineseCultureintroduction)課件
評論
0/150
提交評論