2019春第二次课程设计实验报告
2019春第二次課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
一、實(shí)驗(yàn)項(xiàng)目名稱:
貪吃蛇游戲編寫(xiě);
二、實(shí)驗(yàn)項(xiàng)目功能描述:
這個(gè)實(shí)驗(yàn)主要是實(shí)現(xiàn)游戲的正常運(yùn)行,實(shí)現(xiàn)的目標(biāo)是對(duì)小蛇移動(dòng)的控制,
同時(shí)對(duì)小蛇數(shù)據(jù)的保存,如何實(shí)現(xiàn)轉(zhuǎn)彎的效果,吃到食物后如何自行增
加長(zhǎng)度;還有就是食物的出現(xiàn)的位置,以及食物的消失;
三、項(xiàng)目模塊結(jié)構(gòu)介紹:
第一步:構(gòu)造小蛇,在畫(huà)面中出現(xiàn)一條靜止的小蛇,并且用二維數(shù)組canvas[High][width]
對(duì)應(yīng)的元素進(jìn)行相關(guān)數(shù)據(jù)的輸出,當(dāng)其值是0輸出空格,值為-1時(shí)輸出邊框#,值為1時(shí)
輸出蛇頭@,值為大于1的正數(shù)時(shí)輸出蛇身*。在startup()函數(shù)中初始化蛇頭在畫(huà)布的中間位置(canvas[High/2][width]=1),蛇頭向左依次生成4個(gè)蛇身(for(i=1;i<=4;i++))canvas[High/2][width/2-i]=i+1;),元素分別是2,3,4,5,;第二步:小蛇的移動(dòng),列出小蛇分別向右向上運(yùn)動(dòng)后對(duì)應(yīng)二維數(shù)組元素變換;假設(shè)小蛇元素為54321,其中1為蛇頭,5432為蛇身,最大值5為蛇尾。實(shí)現(xiàn)將所有大于0的元素加1,得到65432,將最大值變?yōu)?;即去除原來(lái)的尾巴;再根據(jù)對(duì)應(yīng)的移動(dòng)方向?qū)?對(duì)應(yīng)方向的元素由0變成1;達(dá)到移動(dòng)目的;
第三步:玩家控制小蛇移動(dòng),在undateWithInput()函數(shù)中按a,s,d,w鍵改變moveDirection的值,然后調(diào)用moveSnakeByDirection()實(shí)現(xiàn)小蛇不同方向的移動(dòng);
第四步:判斷游戲的失敗,當(dāng)小蛇和邊框或者自身發(fā)生碰撞時(shí)游戲結(jié)束;
第五步:吃食物增加自身長(zhǎng)度,當(dāng)二維數(shù)組canvas[High][eidth]的元素值為-2時(shí)輸出食物數(shù)值F,當(dāng)蛇頭碰到食物食物時(shí)長(zhǎng)度加1;
總體模型:
Int main()
{Startup(); //初始化While(1) //游戲循環(huán)執(zhí)行{Show(); //顯示畫(huà)面updateWithoutInput(); //與用戶輸入無(wú)關(guān)的更行updateWithInput(); //與用戶輸入有關(guān)的更新
}
return 0;
} 四、實(shí)現(xiàn)界面展示:
五、代碼托管鏈接:
https://gitee.com/LYL596/game.git
六、實(shí)驗(yàn)總結(jié):
這一周這樣游戲設(shè)計(jì)感覺(jué)比上一個(gè)飛機(jī)小游戲的細(xì)節(jié)要難一點(diǎn)點(diǎn),上一個(gè)飛機(jī)小游戲做的還是挺成功的,同時(shí)自己設(shè)計(jì)的游戲,玩起來(lái)感覺(jué)就是很不錯(cuò),雖然說(shuō)吧畫(huà)面看起來(lái)有一點(diǎn)點(diǎn)別扭,但是這個(gè)都不是事,阻擋不了成功的喜悅。經(jīng)過(guò)一個(gè)星期對(duì)git的使用,對(duì)git上傳代碼,建立倉(cāng)庫(kù)操作還是很熟練,消除了以前怎樣上傳代碼,這個(gè)游戲完成了,下一個(gè)游戲代碼怎樣上傳這一些問(wèn)題;貪吃蛇這個(gè)游戲在編寫(xiě)過(guò)程中遇到sleep()這個(gè)在給定的代碼頭文件不存在,然后就一直運(yùn)行不了,最后去百度查找之后,需要加一個(gè)頭文件#include <unistd.h>,其次書(shū)本上提供的代碼感覺(jué)存在一點(diǎn)點(diǎn)問(wèn)題,起初給定的移動(dòng)代碼,到后面卻沒(méi)有了;然后再運(yùn)行的時(shí)候沒(méi)有蛇頭,這個(gè)就屬于粗心大意,賦值打錯(cuò)了;這個(gè)游戲最難的地方就是小蛇的移動(dòng),如果還是書(shū)本提供,自己很難想到怎樣去實(shí)現(xiàn)移動(dòng)這一操作;每一次完成一個(gè)游戲自己感覺(jué)還是非常高興的,畢竟努力的成果。慢慢的應(yīng)該向更難的方向進(jìn)軍了;
轉(zhuǎn)載于:https://www.cnblogs.com/lyl68/p/10957360.html
總結(jié)
以上是生活随笔為你收集整理的2019春第二次课程设计实验报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ES6 Proxy 性能之我见
- 下一篇: 【原创】大叔经验分享(65)spark读