版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言課程設(shè)計(jì)報(bào)告C 吾言課程設(shè)計(jì)報(bào)告專業(yè)學(xué)生姓名 班級學(xué)號完成日期C語言課程設(shè)計(jì)報(bào)告一、游戲規(guī)則需求1、在打開程序后,出現(xiàn)選擇界面,里面包含難度選擇,其中難度選擇能夠使程序出現(xiàn)相應(yīng) 的游戲難度。2、開始游戲后,W A S D鍵控制貪吃蛇的移動(dòng)方向。3、當(dāng)貪吃蛇向一個(gè)方向移動(dòng)時(shí),不能立刻向反方向移動(dòng)。4、貪吃蛇撞到的自己的身體或者撞到墻時(shí),游戲結(jié)束,并輸出“GAME OVER!。5、貪吃蛇吃到一個(gè)食物后,出現(xiàn)白色閃爍一次,身體隨之增加一個(gè)單位長度。二、所需數(shù)據(jù)結(jié)構(gòu)分析1、所需函數(shù)模塊void begin(); /void start(); /void init();void setfoodcr
2、d(); /void showfood();void snakemove();void judgeslod();void judgesef();void showsnake();void changeskdir(); /void gameover();2、蛇及食物數(shù)據(jù)結(jié)構(gòu)typedef structint x;int y;COOR;struct FOODCOOR crd; /登陸界面鼠標(biāo)移動(dòng)事件/初始化游戲設(shè)置食物要出現(xiàn)的坐標(biāo)/在相應(yīng)的坐標(biāo)畫出食物/移動(dòng)蛇,實(shí)際就是改變蛇各節(jié)的坐標(biāo)/判斷蛇是否撞墻或者撞到自己/判斷蛇是否吃到食物了/在屏幕上畫出蛇接受用戶輸入,改變蛇的前進(jìn)方向/游戲結(jié)束/定義一
3、個(gè)結(jié)構(gòu)體表示坐標(biāo)/定義結(jié)構(gòu)體,來存儲(chǔ)食物的相關(guān)信息食物出現(xiàn)的坐標(biāo)int flag;/食物的狀態(tài),1表示食物還沒被吃,0表示食物被吃了C語言課程設(shè)計(jì)報(bào)告food;struct SNAKE/定義結(jié)構(gòu)體,來存儲(chǔ)蛇的相關(guān)信息COOR crdSIZEMAX; /保存蛇的每個(gè)結(jié)數(shù)的坐標(biāo),最多有 100節(jié)int node;/保存蛇當(dāng)前節(jié)數(shù)DIR dir;/當(dāng)前蛇行進(jìn)的方向snake;3、游戲流程圖三、所需核心算法分析1.主函數(shù)C語言課程設(shè)計(jì)報(bào)告void main()/主函數(shù)(initgraph(640, 640);loadimage(&img0, "denglu3.jpg");
4、/導(dǎo)入圖片10adimage(&img1, "a1.jpg");10adimage(&img2, "a2.jpg");10adimage(&img3, "b1.jpg");10adimage(&img4, "b2.jpg");10adimage(&img5, "c1.jpg");10adimage(&img6, "c2.jpg");1oadimage(&img7, "beijing.jpg");beg
5、in();/登陸界面init();/初始化游戲whi1e(1)(whi1e(!kbhit()(if (!food.f1ag)(setfoodcrd();showfood();judges1od();judgesef();snakemove();Sleep(speed); changeskdir();C語言課程設(shè)計(jì)報(bào)告)2.圖形初始化void init()/初始化游戲(putimage(0, 0, &img7);setbkc010r(RGB(124,107,7);food.flag = 0;snake.crd0.x = 80+ SNAKELEN;snake.crd0.y = 155;sn
6、ake.crd1.x = 80;snake.crd1.y = 155;snake.node = 2;snake.dir = right;)3.讀入操作信息的處理void snakemove()(int i;for (i=snake.node; i>0; 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 l
7、eft:snake.crd0.x -= SNAKELEN;break;case right:snake.crd0.x += SNAKELEN;C語言課程設(shè)計(jì)報(bào)告 showsnake(); )四、關(guān)鍵函數(shù)介紹1,貪吃蛇鏈表用鏈表的節(jié)點(diǎn)表示蛇,移動(dòng)的時(shí)候增加一個(gè)頭節(jié)點(diǎn)隱藏一個(gè)尾節(jié)點(diǎn),吃食物只需增加一 個(gè)頭節(jié)點(diǎn)。2 .Putimage ()函數(shù)用數(shù)組讀入圖片信息,loadimage ()函數(shù)載入圖片,然后用 putimage函數(shù)顯示圖片,實(shí)現(xiàn) 圖形界面。3 .GetMouseMsg()函數(shù)鼠標(biāo)經(jīng)過響應(yīng),改變按鈕的狀態(tài),美化圖形界面。4 .mkLButton 函數(shù)實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊響應(yīng),使游戲從登陸界面跳轉(zhuǎn)
8、到游戲界面。5 . rectangle ()函數(shù)功能:畫出蛇身和食物用 法:rectangle(food.crd.x,food.crd.y,food.crd.x,food.crd.y);6.outtextxy ()功能:在指定位置顯示一字符串用 法:void far outtextxy(int x, int y, char *textstring);五、測試與調(diào)試1 .最初的時(shí)候,不知到要怎么編寫有圖形界面的貪吃蛇,在網(wǎng)上找了一些關(guān)于圖形界 面編程的教案,發(fā)現(xiàn)還要裝一個(gè)EasyX的函數(shù)庫。裝上去后,花了一段時(shí)間去學(xué)習(xí)函數(shù)庫里 的函數(shù)應(yīng)用。2 .一開始只實(shí)現(xiàn)了簡單的蛇的運(yùn)動(dòng),還有很多bug,但經(jīng)
9、過調(diào)試,特別是怎么吃到食物,并且蛇身增長的地方花了好多時(shí)間,后來 bug基本被找出,蛇能吃到食物了。3 .接下去新建了一個(gè)文件,實(shí)現(xiàn)蛇的難度選擇界面,這個(gè)比較簡單,實(shí)現(xiàn)其來不是很 難。但是要把兩個(gè)文檔連接起來毫無頭緒。4,和同年級的同學(xué)交流了一下,終于知道應(yīng)該重新加載圖形界面,通過查閱技術(shù)文檔,還是解決了這個(gè)難題。心情大好 O(A_n)O六、心得與體會(huì)C語言課程設(shè)計(jì)報(bào)告通過一個(gè)多月的學(xué)習(xí), 對c語言有了更深一步的了解。 從一開始的什么都不會(huì),自己一點(diǎn)點(diǎn)慢慢的摸索。發(fā)現(xiàn)書本上學(xué)到的東西還是很不夠的,還有好多東西需要我課外的學(xué)習(xí)。對于貪吃蛇,知道了它的實(shí)現(xiàn)原理,學(xué)會(huì)了對程序的模塊設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的簡單分析。并通過源碼分析講述了各個(gè)模塊的實(shí)現(xiàn)方法。在幾個(gè)模塊的實(shí)現(xiàn)過程中滲透了部分圖形功能函數(shù)。通過本文的編寫過程,掌握了以下幾點(diǎn)知識(shí)點(diǎn):(1) 圖形系統(tǒng)的初始化和關(guān)閉(2) 各種畫圖函數(shù)的使用(3) 結(jié)構(gòu)體的定義(4) 數(shù)組定義及應(yīng)用(5) 函數(shù)嵌套及調(diào)用(6) 鍵盤操作
溫馨提示
- 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度路燈廣告資源整合與廣告內(nèi)容設(shè)計(jì)制作合同4篇
- 2025年度煤炭進(jìn)口代理與供應(yīng)鏈管理服務(wù)合同4篇
- 2025年錨桿錨鎖產(chǎn)品在新能源領(lǐng)域的應(yīng)用合作協(xié)議4篇
- 2025年消防給排水系統(tǒng)安全防護(hù)與應(yīng)急處理合同3篇
- 2025年度龍門吊設(shè)備銷售合同附帶操作手冊及培訓(xùn)4篇
- 2025版鋁塑門窗新型節(jié)能技術(shù)引進(jìn)與轉(zhuǎn)化合同4篇
- 二零二五版企業(yè)融資擔(dān)保保函擔(dān)保合同3篇
- 二零二五年餐飲連鎖品牌加盟管理合同3篇
- 二零二五年度頂級品牌贊助合作協(xié)議3篇
- 2025年度羅絲與劉陽的離婚協(xié)議及婚后財(cái)產(chǎn)管理協(xié)議4篇
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實(shí)施方案
- 小紅書推廣合同范例
- 商業(yè)咨詢報(bào)告范文模板
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 幼兒園籃球課培訓(xùn)
- AQ 6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范知識(shí)培訓(xùn)
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
評論
0/150
提交評論