




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄TOC\o"1-5"\h\z.課程設(shè)計(jì)目的 3.課程設(shè)計(jì)任務(wù)與要求 31課程設(shè)計(jì)內(nèi)容 32課程設(shè)計(jì)要求 33課程設(shè)計(jì)環(huán)境 3.課程設(shè)計(jì)方案 3方案論證 32,呈/予整體^設(shè)t十說》明??? 33設(shè)計(jì)思路 44 設(shè)計(jì)總體流程圖 45設(shè)計(jì)的具體實(shí)現(xiàn) 5.程序測試 8.1測試內(nèi)容與結(jié)果 82不星彳j■ ???????????????????????????????????????????????????????????????9.課程設(shè)計(jì)總結(jié) 10.參考文獻(xiàn) 11附錄源程序 11.課程設(shè)計(jì)目的:復(fù)習(xí)、鞏固才C、C++的基礎(chǔ)知識,進(jìn)一步加深對VC技術(shù)的理解和掌握;課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手乂動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識及能力.課程設(shè)計(jì)任務(wù)與要求課程設(shè)計(jì)內(nèi)容貪吃蛇游戲開發(fā),首先它可以為大家提供一種當(dāng)前比較流行的休閑小游戲。貪吃蛇是家喻戶曉的益智類小游戲,選擇這個(gè)題目一是為了將自己來源:網(wǎng)絡(luò)轉(zhuǎn)載的所學(xué)知識加以運(yùn)用,二是一直以來貪吃蛇這個(gè)游戲就深深地吸引著很多人,它的制作方法對于很多同學(xué)而言都是很神秘的。所以我們希望通過這學(xué)期所學(xué)知識把它剖析開來,真真正正的了解它的本質(zhì)和精髓。在這次學(xué)習(xí)中我們將從實(shí)踐和實(shí)際的項(xiàng)目中提高自己的編程能力。因此決定選擇這個(gè)題目作為VC的課程設(shè)計(jì)。最后一部分就是游戲的模塊劃分,根據(jù)分析,貪吃蛇這個(gè)程序一共要實(shí)現(xiàn)如下幾個(gè)功能,包括游戲方面開始游戲、暫停游戲以及停止游戲,游戲設(shè)置(蛇的顏色、食物的顏色操作說明等)與積分。2課程設(shè)計(jì)要求對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;系統(tǒng)設(shè)計(jì)要實(shí)用,采用模塊化程序設(shè)計(jì)方法,編程簡練、可用,功能全面;說明書、流程圖要清楚;記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備);.3課程設(shè)計(jì)環(huán)境Windows7操作系統(tǒng),VC6.0開發(fā)環(huán)境。.課程設(shè)計(jì)方案方案論證方案一:基于MFC設(shè)計(jì)該方案的好處是系統(tǒng)自動(dòng)生成軟件框架,設(shè)計(jì)者只需填充編寫的代碼即可,程序設(shè)計(jì)比較復(fù)雜,對于編程能力不強(qiáng)的同學(xué)來說難度較大。方案二:基于easyX設(shè)計(jì)該方案的好處是設(shè)計(jì)者只需編寫程序文件,完成后編譯即可生成可執(zhí)行文件,編程前需要先安裝easyX圖形庫。由于編程能力不強(qiáng),方案二設(shè)計(jì)簡單,易于調(diào)試,故選擇方案二。2程序整體設(shè)計(jì)說明一個(gè)游戲要有開始部分,運(yùn)行部分,結(jié)束部分(實(shí)際上開始部分與運(yùn)行部分是一體的)。游戲界面:1)開始游戲(加載并開始)2)暫停游戲(從當(dāng)前進(jìn)度結(jié)束)3)重新開始(在某一時(shí)刻暫停后可以繼續(xù)接著玩)游戲設(shè)置:1)蛇的顏色(紅色)2)游戲幫助(游戲控制說明)3)積分(每次吃掉一個(gè)食物增加10分,并顯示出來)3設(shè)計(jì)思路這個(gè)程序的關(guān)鍵是表示蛇的圖形以及蛇的移動(dòng)。用一個(gè)小矩形表示蛇的一節(jié)身體,身體每長一節(jié),增加一個(gè)矩形塊。移動(dòng)時(shí)必須從蛇頭開始,所以蛇不能向相反方向移動(dòng),也就是蛇尾不能改作蛇頭。如果不按任何鍵,蛇自行在當(dāng)前方向上前移,當(dāng)游戲者按了有效的方向鍵后,蛇頭朝著指定的方向移動(dòng),一步移動(dòng)一節(jié)身體,所以當(dāng)按了有效的方向鍵后,先確定蛇頭的位置,然后蛇身體隨著蛇頭來源:網(wǎng)絡(luò)轉(zhuǎn)載
移動(dòng),圖形的實(shí)現(xiàn)是從蛇頭的新位置開始畫出蛇,這時(shí)原來蛇的位置和新蛇的位置差一個(gè)單位,所以看起來蛇會(huì)多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)和消失也是畫矩形塊和覆蓋矩形塊。3.4設(shè)計(jì)總體流程圖信息。 stnictSnake(mtx[MAX_JOINTS];)根據(jù)鍵盤控制蛇移動(dòng)方h 信息。 stnictSnake(mtx[MAX_JOINTS];)根據(jù)鍵盤控制蛇移動(dòng)方h mty[MAX.JOINTS];cleaideviceQ;setfbnt(25,0,_T(“微軟雅黑"));outtextxy(170』50JGieedySnake");/*在坐標(biāo)(170,150)處輸出字符串*//*保存蛇身每一節(jié)位于鹿日的列坐標(biāo)*//*保存蛇身每一節(jié)位于屏幕上的行坐標(biāo)*/outtextxy(219.254/,Ready?n);getchO;setbkcoloi(O);cleaideviceQ;)4)繪制游戲場景5?吐11儂匹治生_$0110,5)用于繪制實(shí)心的寬度為5個(gè)像素的線型231@40,計(jì)7,47);為畫一個(gè)左上角為(1,40),右下角為(1十7,47)的矩形條,底(^叫原14),1十10,49)也用于畫矩形。來源:網(wǎng)絡(luò)轉(zhuǎn)載voidDiawFence(){mti;setbkcoloi(LIGHTGREEN);setlinestyle(PS_SOLID.5);〃畫圍墻setfillstyle(LIGHTBLUE);for(i=50;i<=591;i+=10){//iectangle(i,40,i+10,49);〃上邊bai(i,40j+7,47);bai(i,551,i+7,558);〃下邊}for(i=40;i<=550;i+=10){bai(50,i,57,i+7); //左邊bai(59l,i,598,i+7);〃右邊})5)結(jié)束游戲P[Sco】e(scoie)用于輸出分?jǐn)?shù)。voidGameOvei(intscoie)(cleardeviceQ;PiScore(score);setcolor(RED);setfont(80,0,_T("微軟雅黑"));outtexrxy(100,200,HGAMEOVERu);mciSendStiing("closemo.mp3",NULL,0,NULL);//關(guān)閉音樂getchO;exit(0);)6)判斷是否需要出現(xiàn)食物if(food.addFood=l) 〃需要出現(xiàn)新食物(food.x=rand()%400+60;food.y=rand()%350+60;〃食物出現(xiàn)后必須在整格內(nèi)才能讓蛇吃到wlule(food.x%10!=0){food.x十十;}while(fbod.y%10!=0){food.y十十;}food.addFood=0; //畫面上有食物)if(food.addFood==0)〃畫面上有食物,則顯示(setcoloi(GREEN);來源:網(wǎng)絡(luò)轉(zhuǎn)載rectangle(fdod.x5fbod.y9fbod.x+10,fbod.y-10);}7)在沒有按鍵的情況下,蛇自己移動(dòng)身體for(i=snake.jomt-1 )〃蛇的每個(gè)節(jié)往前移動(dòng){snake.x[i]=snake.x[i-l];snake.y[i]=snake.y[i-1];}〃L2,3,4表示右,左,上,下四個(gè)方向,來決定蛇頭的移動(dòng)switch(snake.dHection){caseMV_RIGHT:snake.x[0]+=10;break;caseMV_LEFT:snake.x[0]-=10;bieak;caseMV_UP:snake.y[0]-=10;bieak;caseMV_DOWN:snake.y[0]+=10;break;)8)a.從蛇的第四節(jié)開始判斷是否撞到自己,因?yàn)樯哳^為兩節(jié),第三節(jié)不可能拐過來fdr(i=3;i<snake.joint;i++){if(siiake.x[i]==snake.x[O]&&snake.y[i]==siiake.y[O]){_ 'GameOver(score);〃顯示失敗snake.life=l; //蛇死*7break;))b.判斷蛇是否撞到墻壁if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455){GameOvei(score); 〃本次游戲結(jié)束snake.life=l;〃蛇死)c.判斷是否撞到障礙物fbi(intobs_i=0;obs_i<vox.sizeQ;obs_i-H-)(if(vox[obs_i]=snake.x[0]&&voy[obs_i]==snake.y[0])GameOver(score);}以上三種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始。9)吃到食物后畫蛇if(snake.x[0]==food.x&&snake.y[0]=food.y)//吃到食物后{ 〃把畫面上的食物清除setcoloi(O);rectangle(fbod.x,food.y,food.x+10,fbod.y-10);來源:網(wǎng)絡(luò)轉(zhuǎn)載〃新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置snake.x[snake.joint]=-20;snake.y[snake.jomt]=-20;snake.joint++; 〃蛇的身體長一節(jié)food.addFood=l; 〃畫面上需要出現(xiàn)新食物score+=10;// PrScoie(scoie); 〃輸出新得分)〃畫蛇setcolor(RED);fbi(i=0;i<snake.jomt;i++)(rectangle(snake.x[i],snake.y[i],snake.x[i]+l0,snake.y[i]-10);}Sleep(gamespeed); 〃延時(shí)控制蛇的速度〃去除蛇的最后一節(jié)setcolor(O);iectangle(snake.x[snake.joint-l],snake.y[snake.joint-1],snake.x[snake.joint-1]+lO.snake.y[snake.jomt-l]-10);10)按鍵操作key=getch0;//接收按鍵switch(key){〃判斷按鍵,是否往相反方向移動(dòng)caselw,:case,W,:{if(snake.diiection!=M\CDOWN)snake.diiection=MV_UP;}bieak;caserdr:case,D,:{if(snake.diiection!=MV_LEFT)snake.diiection=MV_RIGHT;}bfeak;caseral:caserA,:{if(snake.diiection?=MV_RIGHT)snake.diiection=MV_LEFT;}bfeak;casersl:caserS,:{if(snake.direction!=M\z_UP)snake.direction=MV_DO\W;}breakcase'p':case'P':mn_pause0;bieak;caset':case'R':fUn_】eset();b[eak;)編好程序后進(jìn)行編譯、運(yùn)行,生成可執(zhí)行文件,就可以玩貪吃蛇游戲了。4.程序測試測試內(nèi)容與結(jié)果來源:網(wǎng)絡(luò)轉(zhuǎn)載1)開始:程序運(yùn)行后,會(huì)出來藍(lán)色背景界面和提示語Ready?,按任意鍵開始,注意不要在中文輸入法下玩。開始后只有兩節(jié)的紅色蛇和一個(gè)綠色的食物,并且蛇是運(yùn)動(dòng)的。2)方向鍵和WSAD鍵:蛇開始運(yùn)行之后,當(dāng)點(diǎn)擊上下左右鍵(或WSAD)蛇就會(huì)按相應(yīng)的方向運(yùn)動(dòng),蛇不能180度轉(zhuǎn)彎,只能進(jìn)行90度的轉(zhuǎn)彎。程序檢測時(shí)蛇確實(shí)會(huì)按點(diǎn)擊方向運(yùn)動(dòng)且不會(huì)向相反方向運(yùn)動(dòng),所有方向鍵使用正確。3)暫停/繼續(xù):當(dāng)程序正在運(yùn)行時(shí),點(diǎn)擊暫停/繼續(xù)按鈕“P”,蛇停在當(dāng)前的位置,再次點(diǎn)擊“P”蛇乂從當(dāng)前位置繼續(xù)運(yùn)動(dòng)。此按鈕符合要求,所以暫停/繼續(xù)按鈕使用正確,功能能夠?qū)崿F(xiàn)。4)重新開始:當(dāng)游戲結(jié)束或想重新開始一局時(shí),點(diǎn)擊按鈕“R”,游戲乂回到最初的狀態(tài),一個(gè)食物,一個(gè)運(yùn)動(dòng)著的紅色蛇塊,且游戲積分清零。所以重新開始功能能夠?qū)崿F(xiàn)。5)界面右側(cè)能夠出現(xiàn)按鍵提示和分?jǐn)?shù)顯示等有關(guān)信息。.2程序運(yùn)行效果圖.課程設(shè)計(jì)總結(jié)在設(shè)計(jì)這個(gè)程序中我主要學(xué)會(huì)了如何運(yùn)用以下有關(guān)C語言和C++的知識:1)函數(shù)定義是要做到顧名思義是很重要的,它對讀程序的人正確認(rèn)識程序十分重要,在修改這個(gè)程序的過程中也能很快找到程序各模塊的作用,大大增加了程序的可讀性。2)分析函數(shù)先從mam()函數(shù)入手。Mam()函數(shù)是C++源程序編譯時(shí)的開始,從main。函數(shù)開始讀函數(shù)可將其他函數(shù)的功能理解得更透徹。3)在做程序的時(shí)候先列框架,將這個(gè)程序所要達(dá)到的目的(功能)分析出來,選擇正確的數(shù)據(jù)結(jié)構(gòu)然后在將程序模塊化,按照模塊編寫函數(shù)更加簡單合理。4)我還了解了很多的庫函數(shù)的作用,如字符串函數(shù)中有很多對字符串進(jìn)行處理的函數(shù),其功能我都有所了解。5)學(xué)會(huì)了有關(guān)頭文件的使用方法,及系統(tǒng)調(diào)配問題的解決方法等。)了解到了注釋的重要性。通過這次試驗(yàn),讓我學(xué)到很多這個(gè)學(xué)期沒有接觸過的很多知識,完成一個(gè)貪吃蛇的項(xiàng)目;第一步就是先理清思路,設(shè)計(jì)主界面,主界面是以一塊封閉的畫布,并在畫布內(nèi)設(shè)計(jì)蛇體和食物。蛇頭如果碰到墻或者與蛇身的某一部分碰到就會(huì)死亡;如果蛇頭碰到食物,就會(huì)自動(dòng)增加一節(jié)蛇身,并更改得分。想要寫出好的程序,還是要有扎實(shí)的基礎(chǔ),這樣遇到問題就不會(huì)一籌莫展來。在編程時(shí)我們要有想象力,不要拘泥于現(xiàn)有的貪吃蛇游戲,而是要把自己想到的再加上所學(xué)的知識,遇到問題不能怕,而是要專心找出問題的原因,再回來看看書本的知識,不懂的還可以問問老師。編程過程還要養(yǎng)成良好的編程習(xí)慣,這樣不僅自己能夠很好看懂自己的代碼,也讓人家容易看懂自己的代碼,而不至于代碼知識自己會(huì)看,出來問題只有自己會(huì)解決而其他人都不會(huì)解決;遇到問題時(shí)要考慮最簡單的解決方案,只有簡單的方案不能滿足要求時(shí)再考慮復(fù)雜的方案。最主要編程還是要多與人溝通,不會(huì)的不能立即問別人,但是一段時(shí)間后解決不了時(shí)還是應(yīng)該向別人請教請教,“三人行必有我?guī)煛闭沁@個(gè)意思。通過這次實(shí)驗(yàn),我深刻地體會(huì)到了面向?qū)ο笈c面向過程的區(qū)別。程序在最初設(shè)計(jì)時(shí)由于面向?qū)ο蟮乃枷氩粔虺墒?,?dǎo)致在最后想要增加一些新的功能時(shí),出現(xiàn)了一些麻煩??傊?,我們還需要進(jìn)一步提升自己的能力。6.參考文獻(xiàn)來源:網(wǎng)絡(luò)轉(zhuǎn)載
《C語言程序設(shè)計(jì)》武雅麗清華大學(xué)出版社《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)清華大學(xué)出版社《C語言課程設(shè)計(jì)案例精編》李麗娟中國水利水電出版社附錄:源程序〃程序名稱:貪吃蛇〃制作:莫新存//編譯環(huán)境:VisualC++6.0,EasyXllllllllllllllllllllllllllllllllllllllllllllll#include<iostreani>#include<graphics.h>#include<stdlib.h>#include<como.h>#include<dos.h>#include<time.h>#include<stdio.h>#include<vector>#defiiieiandom(a,b)(randO%((b)-(a)))+(a)#p[agmacomment(hb,”Wmmm.hb")//加入背景音樂時(shí)使用usingnamespacestd;#defineMAX_JOINTS200#defineMV_RIGHTl#deflneMV_LEFT2#defineMV_UP3#defineMV_DO\W4mtrndl,rnd2;vectof<iiit>vox;vectof<mt>voy;voidlmtGiaph(void);voidDiawFence(void);voidGameOvei(intscore);voidGamePlay(void);
/*圖形界面初始化函數(shù)*//*繪制游戲場景*//*結(jié)束游戲*//*玩游戲具體過程*/voidPrScoie(intscoie);/*顯示分?jǐn)?shù)*/voidfi】n_pauseO;/*暫停游戲*/voidftm_ieset();/*重置游戲*/voidfbn_obstacle();/*設(shè)置障礙物*/stmctFood{
mtx;mtv;mtaddFood;/*stmctFood{
mtx;mtv;mtaddFood;/*食物的橫坐標(biāo)*//*食物的縱坐標(biāo)*//*判斷是否要出現(xiàn)食物的變量*/);/*蛇的結(jié)構(gòu)體定義*//*蛇的結(jié)構(gòu)體定義*//*保存蛇身每一節(jié)位于屏幕上的列坐標(biāo)*//*保存蛇身每一節(jié)位于屏幕上的行坐標(biāo)*/mtx[MAX_JOINTS];mty[MAX_JOINTS];來源:網(wǎng)絡(luò)轉(zhuǎn)載mtjoint;mtduection;mtlife;/*mtjoint;mtduection;mtlife;/*蛇移動(dòng)方向*//*蛇的生命,0活著,1死亡*/);voidplay()uutgraph(800,600);IiHtGrapli();DiawFenceQ;GamePlay();getcliQ;play();ietiunO;)//初始化voidIiiitGiaph(){cleaideviceQ;setbkcoloi(BLUE);setcoloi(WHITE);cleaideviceQ;setfbnt(25,0,_T(“微軟雅黑"));outtextxy(170J50/,GreedySnakeH);outtextxy(219,254,HReady?H);getchO;setbkcolor(O);cleaideviceQ;)〃繪制游戲場景voidDiawFence(){mti;setbkcoloi(LIGHTGREEN);setlinestyle(PS_SOLID.5);〃畫圍墻setfillstyle(LIGHTBLUE);for(i=50;i<=591;i+=10){//iectangle(i,40,i+10,49); //上邊ba1(i,40,i+7,47);ba1(i,551,1+7,558);//下邊}foi(i=40;i<=550;i+=10){ba1(50,i,57,i+7);〃左邊來源:網(wǎng)絡(luò)轉(zhuǎn)載ba1(591,i,598,i十7);〃右邊})//結(jié)束游戲voidGameOvei(intscore){cleaideviceQ;PrScoie(scoie);setcoloi(RED);setfbnt(80,0,_T(“微軟雅黑"));outtextxy(100,200,HGAMEOVERu);mciSendStiing("closemo.mp3",NULL,0,NULL);//關(guān)閉音樂getchO;exit(O);)//輸出成績voidPrScore(intscore)(charsti_scoie[10];//setfillstyle(YELLOW);//bai(50,15,220,35);//setcolor(6);//setfont(25,0,_T(”微軟雅黑"));//setfillstyle(BLACK);setbkinode(TRANSPARENT); //--new--BeguiBatcliDiaw();setfillstyle(BLACK);bai(601,0,800,600);setfdnt(60,0,_T(“微軟雅黑"));setcoloi(YELLOW);outtexrxy(625,30,_T(“貪吃蛇”));5。1代出(30?!?“微軟雅黑"));setcoloi(LIGHTGREEN);outtextxy(625,140,_T("制作:莫新存”));outtextxy(625,200,_T(”學(xué)號:19”));setfont(25Q_T("微軟雅黑"));setcoloi(CYAN);outtexrxy(625,380,_T(n±:WH));outtextxy(625,400,_T(nT:S"));outtextxy(625,420,_T("S:A*'));outtextxy(625,440,_T("右:D*'));outtextxy(625、460,_T("分?jǐn)?shù):'*));outtexrxy(625、490,_T(”暫停(P鍵)”));outtexrxy(625,520,_T(”重新游戲(R鍵)'1));setcoloi(LIGHTBLUE);來源:網(wǎng)絡(luò)轉(zhuǎn)載spiintf(str_scoie,n%i,\scofe);outtextxy(680.460,str_scoie);EndBatcliDiaw();if(scofe>0&&score%50==0)fiin_obstacle();voidGamePlayO{mti.key;〃控制游戲速度*//〃控制游戲速度*//記錄游戲得分〃食物結(jié)構(gòu)體變量〃蛇結(jié)構(gòu)體變量mtscore=0;stRictFoodfbod;stnictSnakesnake;food.addFood=l; //I表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物snake.hfe=0; 〃置蛇的生命狀態(tài)為活著snake.diiection=MV_RIGHT;〃置蛇頭方向往右snake.x[0]=100;snake.y[0]=100;〃置蛇頭初始位置snake.x[l]=l10;snake.y[l]=100;snake.joint=2; 〃置蛇的初始節(jié)數(shù)為2PiScore(score); 〃顯示游戲得分//重復(fù)玩游戲,直到按Esc鍵結(jié)束srand(time(NULL));while(l)(while(!kbliit()){mciSendStnng("playmo.mp3",NULL,0,NULL);〃播放音樂if(food.addFood==l){ 〃需要出現(xiàn)新食物food.x=iand()%400+60;food.y=iand()%350+60;〃食物出現(xiàn)后必須在整格內(nèi)才能讓蛇吃到wlule(food.x%10!=0)(fbod.x-H-;)wlule(food.y%10!=0){food,y十十;)food.addFood=0; 〃畫面上有食物)if(food.addFood==0){ 〃畫面上有食物,則顯示setcolor(GREEN);rectaiigle(fdod.x,fbod.y,fbod.x+10,fbod.y-10);)〃在沒有按鍵的情況下,蛇自己移動(dòng)身體for(i=snake.joint-1;i>0;i-){ //蛇的每個(gè)節(jié)往前移動(dòng)snake.x[i]=snake.x[i-l];來源:網(wǎng)絡(luò)轉(zhuǎn)載snake.y[i]=snake.y[i-1];)〃L2,34表示右,左,上,下四個(gè)方向,來決定蛇頭的移動(dòng)switch(snake.direction){caseMV_RIGHT:snake.x[O]+=l0;break;caseMV_LEFT:snake.x[0]-=10;break;caseMV_UP:snake.y[0]-=10;break;caseMV_DOWN:snake.y[0]+=10;break;)〃從蛇的第四節(jié)開始判斷是否撞到自己,因?yàn)樯哳^為兩節(jié),第三節(jié)不可能拐過來fbi(i=3;i<snake.jomt;i++){if(snake.x[i]==snake.x[O]&&snake.y[i]==snake.y[O]){GameOver(score);〃顯示失敗snake.life=l; //蛇死*7break;))〃判斷蛇是否撞到墻壁if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455){GameOvei(score); 〃本次游戲結(jié)束snake.life=l;〃蛇死)for(intobs_i=0;obs_i<vox.sizeO;obs_i++){// 判斷是否撞到障礙物——if(vox[obs_i]=snake.x[0]&&voy[obs_i]==snake.y[0])GameOver(score);}〃以上三種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始if(snake.life=l)break;if(snake.x[0]=food.x&&snake.y[0]==food.y){〃吃到食物后〃把畫面上的食物清除setcolor(O);iectangle(fdod.x,food.v,food.x+10,fdod.v-l0);〃新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置snake.x[snake.joint]=-20;snake.y[snake.jomt]=-20;snake.joint++; 〃蛇的身體長一節(jié)food.addFood=l; 〃畫面上需要出現(xiàn)新食物score+=10
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古詩文教學(xué)新思路:春江花月夜教學(xué)設(shè)計(jì)與實(shí)施案例分享
- 汽車機(jī)械維修技術(shù)實(shí)操測試卷
- 企業(yè)管理培訓(xùn)服務(wù)合同
- 墩、臺(tái)身和蓋梁工程現(xiàn)場質(zhì)量檢驗(yàn)報(bào)告單(二)
- 超前錨桿 現(xiàn)場質(zhì)量檢驗(yàn)報(bào)告單
- 酒水采購合同
- 防控疫情知識培訓(xùn)課件
- 醫(yī)療護(hù)理操作規(guī)范測試題
- 武漢手房屋買賣合同書
- 教育范文選錄
- 2022-2023學(xué)年廣西壯族河池市小升初考試數(shù)學(xué)試卷含答案
- “家校合育”手冊
- 食堂安全培訓(xùn)-課件
- 計(jì)算機(jī)之父-圖靈課件
- 水利工程建設(shè)監(jiān)理人員培訓(xùn)講義課件
- 長短樁樁復(fù)合地基長短樁基技術(shù)
- 長沙市建筑施工安全生產(chǎn)“一會(huì)三卡”
- 直臂式高空作業(yè)車施工方案
- 安徽涵豐科技有限公司年產(chǎn)6000噸磷酸酯阻燃劑DOPO、4800噸磷酸酯阻燃劑DOPO衍生品、12000噸副產(chǎn)品鹽酸、38000噸聚合氯化鋁、20000噸固化劑項(xiàng)目環(huán)境影響報(bào)告書
- 大學(xué)生安全教育第一章維護(hù)國家安全
- 《職場關(guān)系與溝通技巧》教案第15課上行溝通-與上級之間的溝通
評論
0/150
提交評論