貪吃蛇課程設(shè)計(jì)報(bào)告_第1頁
貪吃蛇課程設(shè)計(jì)報(bào)告_第2頁
貪吃蛇課程設(shè)計(jì)報(bào)告_第3頁
貪吃蛇課程設(shè)計(jì)報(bào)告_第4頁
貪吃蛇課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄1 .課程設(shè)計(jì)目的32 .課程設(shè)計(jì)任務(wù)與要求32.1 課程設(shè)計(jì)內(nèi)容 32.2 課程設(shè)計(jì)要求 32.3 課程設(shè)計(jì)環(huán)境 33 .課程設(shè)計(jì)方案33.1 方案論證 33.2 程序整體設(shè)計(jì)說明 33.3 設(shè)計(jì)思路 43.4 設(shè)計(jì)總體流程圖 43.5 設(shè)計(jì)的具體實(shí)現(xiàn) 54 .程序測試84.1 測試內(nèi)容與結(jié)果 84.2 程序運(yùn)行效果圖 95 .課程設(shè)計(jì)總結(jié)1011116 . 參考文獻(xiàn)附錄 源程序1. 課程設(shè)計(jì)目的:復(fù)習(xí)、鞏固才C、C+的基礎(chǔ)知識,進(jìn)一步加深對VC技術(shù)的理解和掌握;課程設(shè)計(jì)為學(xué)生提供了一個既動手又動腦,獨(dú)立實(shí)踐的機(jī)會,將課本上的理論知識和實(shí)際有機(jī)的結(jié)合起來, 鍛煉學(xué)生的分析解決實(shí)際問題的能

2、力。培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識及能力2. 課程設(shè)計(jì)任務(wù)與要求2.1 課程設(shè)計(jì) 內(nèi)容貪吃蛇游戲開發(fā),首先它可以為大家提供一種當(dāng)前比較流行的休閑小游戲。貪吃蛇是家喻戶曉的益智類小游戲,選擇這個題目一是為了將自己的所學(xué)知識加以運(yùn)用,二是一直以來貪吃蛇這個游戲就深深地吸引著很多人,它的制作方法對于很多同學(xué)而言都是很神秘的。所以我們希望通過這學(xué)期所學(xué)知識把它剖析開來,真真正正的了解它的本質(zhì)和精髓。在這次學(xué)習(xí)中我們將從實(shí)踐和實(shí)際的項(xiàng)目中提高自己的編程能力。因此決定選擇這個題目作為 VC 的課程設(shè)計(jì)。最后一部分就是游戲的模塊劃分,根據(jù)分析,貪吃蛇這個程序一共要實(shí)現(xiàn)如下幾個功能,包括游戲方面開

3、始游戲、暫停游戲以及停止游戲,游戲設(shè)置(蛇的顏色、食物的顏色操作說明等)與積分。2.2 課程設(shè)計(jì)要求對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;系統(tǒng)設(shè)計(jì)要實(shí)用,采用模塊化程序設(shè)計(jì)方法,編程簡練、可用,功能全面;說明書、流程圖要清楚;4記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備)2.3 課程設(shè)計(jì)環(huán)境Windows視作系統(tǒng),VC6.0開發(fā)環(huán)境。3. 課程設(shè)計(jì)方案3.1 方案論證方案一:基于MF酸計(jì)該方案的好處是系統(tǒng)自動生成軟件框架,設(shè)計(jì)者只需填充編寫的代碼即可, 程序設(shè)計(jì)比較復(fù)雜,對于編程能力不強(qiáng)的同學(xué)來說難度較大。方案二

4、:基于 easyX設(shè)計(jì)該方案的好處是設(shè)計(jì)者只需編寫程序文件,完成后編譯即可生成可執(zhí)行文 件,編程前需要先安裝easyX圖形庫。由于編程能力不強(qiáng),方案二設(shè)計(jì)簡單,易于調(diào)試,故選擇方案二。3.2 程序整體設(shè)計(jì)說明一個游戲要有開始部分,運(yùn)行部分,結(jié)束部分(實(shí)際上開始部分與運(yùn)行部分是一體的)游戲界面:1)開始游戲(加載并開始)2)暫停游戲(從當(dāng)前進(jìn)度結(jié)束)3)重新開始(在某一時(shí)刻暫停后可以繼續(xù)接著玩)游戲設(shè)置:1)蛇的顏色(紅色)2)游戲幫助(游戲控制說明)3)積分(每次吃掉一個食物增加10分,并顯示出來)3.3 設(shè)計(jì)思路這個程序的關(guān)鍵是表示蛇的圖形以及蛇的移動。用一個小矩形表示蛇的一節(jié)身體,身體每長

5、一節(jié),增加一個矩形塊。移動時(shí)必須從蛇頭開始,所以蛇不能向相反方向移動,也就是 蛇尾不能改作蛇頭。 如果不按任何鍵,蛇自行在當(dāng)前方向上前移,當(dāng)游戲者按了有效的方向鍵后,蛇頭朝著指定的方向移動,一步移動一節(jié)身體,所以當(dāng)按了有效的方向鍵后,先確定 蛇頭的位置,然后蛇身體隨著蛇頭移動,圖形的實(shí)現(xiàn)是從蛇頭的新位置開始畫出蛇,這時(shí)原來蛇的位置和新蛇的位置差一個單位,所以看起來蛇會多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)和消失也是畫矩形塊和覆蓋矩形塊。3.4 設(shè)計(jì)總體流程圖21蛇頭和食物坐標(biāo)是否重合3.5 設(shè)計(jì)的具體實(shí)現(xiàn)1)食物類/*食物的結(jié)構(gòu)體定義*/*食物的橫坐標(biāo)*/*食物的縱坐標(biāo)*/*判

6、斷是否要出現(xiàn)食物的變量*/struct Foodint x;int y;int addFood;;2)蛇塊類把蛇分成一塊一塊,一個蛇相當(dāng)于有若干個塊,蛇塊類就是用來描述每塊的 信息。struct Snakeint xMAX_JOINTS;int yMAX_JOINTS;int joint;int direction;int life;3)初始化游戲游戲開始界面的初始化:void InitGraph()/*蛇的結(jié)構(gòu)體定義*/*保存蛇身每一節(jié)位于屏幕上的列坐標(biāo)*/*保存蛇身每一節(jié)位于屏幕上的行坐標(biāo)*/*蛇的節(jié)數(shù)*/*蛇移動方向*/*蛇的生命,0活著,1死亡*/cleardevice();setbk

7、color(BLUE); /* 設(shè)置背景顏色 */setcolor(WHITE); /*設(shè)置前景顏色*/cleardevice();setfont(25, 0, _T(" 微軟雅黑 ");outtextxy(170,150,"Greedy Snake"); /*在坐標(biāo)( 170,150)處輸出字符串 */outtextxy(219,254,"Ready?");getch();setbkcolor(0);cleardevice();4)繪制游戲場景setlinestyle(PS_SOLID, 5)用于繪制實(shí)心的寬度為5 個像素的線型,b

8、ar(i,40,i+7,47); 為畫一個左上角為 (i,40) ,右下角為(i+7,47) 的矩形條, rectangle(i, 40, i+10, 49) 也用于畫矩形。void DrawFence()int i;setbkcolor(LIGHTGREEN);setlinestyle(PS_SOLID, 5);/畫圍墻setfillstyle(LIGHTBLUE);for (i=50; i<=591; i+=10)/ rectangle(i, 40, i+10, 49);/ 上邊bar(i,40,i+7,47);bar(i, 551, i+7,558);/下邊f(xié)or (i=40; i

9、<=550; i+=10)bar(50, i, 57, i+7);/左邊bar(591, i, 598, i+7);/ 右邊5)結(jié)束游戲PrScore(score)用于輸出分?jǐn)?shù)。void GameOver(int score)cleardevice();PrScore(score);setcolor(RED);setfont(80, 0, _T(" 微軟雅黑 ");outtextxy(100, 200, "GAME OVER");mciSendString("close mo.mp3", NULL, 0, NULL);/關(guān)閉音樂

10、getch();exit(0);6)判斷是否需要出現(xiàn)食物if (food.addFood = 1)/需要出現(xiàn)新食物food.x = rand() % 400 + 60;food.y = rand() % 350 + 60;/食物出現(xiàn)后必須在整格內(nèi)才能讓蛇吃到while (food.x%10 != 0)food.x+;while (food.y%10 !=0)food.y+; food.addFood=0;/畫面上有食物if (food.addFood=0)/畫面上有食物,則顯示setcolor(GREEN);rectangle(food.x, food.y, food.x+10, food.y

11、-10);7)在沒有按鍵的情況下,蛇自己移動身體for (i=snake.joint-1; i>0; i-)/蛇的每個節(jié)往前移動snake.xi = snake.xi-1;snake.yi = snake.yi-1;/1,2,3,4 表示右 ,左 ,上 ,下四個方向,來決定蛇頭的移動switch(snake.direction)case MV_RIGHT: snake.x0 += 10; break;case MV_LEFT: snake.x0 -= 10; break;case MV_UP:snake.y0 -= 10; break;case MV_DOWN: snake.y0 +=

12、10; break;8) a.從蛇的第四節(jié)開始判斷是否撞到自己,因?yàn)樯哳^為兩節(jié),第三節(jié)不可能拐過來 for (i=3; i<snake.joint; i+)if (snake.xi=snake.x0 && snake.yi=snake.y0)GameOver(score);/顯示失敗snake.life = 1;/蛇死 */break;b.判斷蛇是否撞到墻壁if (snake.x0<55 | snake.x0>595 | snake.y0<55 | snake.y0>455) GameOver(score);/本次游戲結(jié)束snake.life =

13、1;/蛇死c.判斷是否撞到障礙物for(int obs_i = 0; obs_i<vox.size(); obs_i+)if(voxobs_i=snake.x0 && voyobs_i=snake.y0), 如果蛇死就跳出內(nèi)循環(huán),重新開始。GameOver(score);9)吃到食物后畫蛇if (snake.x0=food.x && snake.y0=food.y)/吃到食物后/把畫面上的食物清除setcolor(0);rectangle(food.x, food.y, food.x+10, food.y-10);/新的一節(jié)先放在看不見的位置,下次循環(huán)就取

14、前一節(jié)的位置snake.xsnake.joint =-20; snake.ysnake.joint =-20;snake.joint+;food.addFood = 1; score += 10;/蛇的身體長一節(jié)/畫面上需要出現(xiàn)新食物PrScore(score);/畫蛇setcolor(RED);for (i=0; i<snake.joint; i+)/輸出新得分rectangle(snake.xi, snake.yi,snake.xi+10, snake.yi-10);Sleep(gamespeed);/延時(shí)控制蛇的速度/去除蛇的最后一節(jié)setcolor(0);rectangle(sn

15、ake.xsnake.joint-1, snake.ysnake.joint-1, snake.xsnake.joint-1+10,snake.ysnake.joint-1-10);10)按鍵操作key=getch();/ 接收按鍵switch(key)/ 判斷按鍵,是否往相反方向移動case 'w':case 'W':if(snake.direction!=MV_DOWN) snake.direction = MV_UP;break;case 'd':case 'D':if(snake.direction!=MV_LEFT) s

16、nake.direction = MV_RIGHT;break; case 'a':case 'A':if(snake.direction!=MV_RIGHT) snake.direction = MV_LEFT;break; case 's':case 'S':if(snake.direction!=MV_UP) snake.direction = MV_DOWN;break; case 'p':case 'P':fun_pause();break;case 'r':case &#

17、39;R':fun_reset();break;編好程序后進(jìn)行編譯、運(yùn)行,生成可執(zhí)行文件,就可以玩貪吃蛇游戲了。4.程序測試4.1 測試內(nèi)容與結(jié)果1)開始:程序運(yùn)行后,會出來藍(lán)色背景界面和提示語 Ready?,按任意鍵開始, 注意不要在中文輸入法下玩。開始后只有兩節(jié)的紅色蛇和一個綠色的食物, 并且 蛇是運(yùn)動的。2)方向鍵和WSAD:蛇開始運(yùn)行之后,當(dāng)點(diǎn)擊上下左右鍵(或 WSAD蛇就會按 相應(yīng)的方向運(yùn)動,蛇不能180度轉(zhuǎn)彎,只能進(jìn)行90度的轉(zhuǎn)彎。程序檢測時(shí)蛇確實(shí) 會按點(diǎn)擊方向運(yùn)動且不會向相反方向運(yùn)動,所有方向鍵使用正確。3)暫停/繼續(xù):當(dāng)程序正在運(yùn)行時(shí),點(diǎn)擊暫停/繼續(xù)按鈕“ P”,蛇停在

18、當(dāng)前的 位置,再次點(diǎn)擊“ P'蛇又從當(dāng)前位置繼續(xù)運(yùn)動。此按鈕符合要求,所以暫停 / 繼續(xù)按鈕使用正確,功能能夠?qū)崿F(xiàn)。4)重新開始:當(dāng)游戲結(jié)束或想重新開始一局時(shí),點(diǎn)擊按鈕“R,游戲又回到最初的狀態(tài),一個食物,一個運(yùn)動著的紅色蛇塊,且游戲積分清零。所以重新開 始功能能夠?qū)崿F(xiàn)。5)界面右側(cè)能夠出現(xiàn)按鍵提示和分?jǐn)?shù)顯示等有關(guān)信息。4.2程序運(yùn)行效果圖5. 課程設(shè)計(jì)總結(jié)在設(shè)計(jì)這個程序中我主要學(xué)會了如何運(yùn)用以下有關(guān)C語言和C+的知識:1) 函數(shù)定義是要做到顧名思義是很重要的, 它對讀程序的人正確認(rèn)識程序十分重要, 在 修改這個程序的過程中也能很快找到程序各模塊的作用,大大增加了程序的可讀性。2)分析

19、函數(shù)先從main()函數(shù)入手。Main()函數(shù)是C+源程序編譯時(shí)的開始,從 main()函數(shù) 開始讀函數(shù)可將其他函數(shù)的功能理解得更透徹。3)在做程序的時(shí)候先列框架,將這個程序所要達(dá)到的目的(功能)分析出來,選擇正確的數(shù)據(jù)結(jié)構(gòu)然后在將程序模塊化,按照模塊編寫函數(shù)更加簡單合理。4)我還了解了很多的庫函數(shù)的作用,如字符串函數(shù)中有很多對字符串進(jìn)行處理的函數(shù),其功能我都有所了解。5)學(xué)會了有關(guān)頭文件的使用方法,及系統(tǒng)調(diào)配問題的解決方法等。6)了解到了注釋的重要性。通過這次試驗(yàn), 讓我學(xué)到很多這個學(xué)期沒有接觸過的很多知識, 完成一個貪吃蛇的項(xiàng)目;第一步就是先理清思路, 設(shè)計(jì)主界面, 主界面是以一塊封閉的畫

20、布, 并在畫布內(nèi)設(shè)計(jì)蛇體和食物。 蛇頭如果碰到墻或者與蛇身的某一部分碰到就會死亡; 如果蛇頭碰到食物, 就會自動增加一節(jié)蛇身,并更改得分。想要寫出好的程序, 還是要有扎實(shí)的基礎(chǔ), 這樣遇到問題就不會一籌莫展來。 在編程時(shí)我們要有想象力,不要拘泥于現(xiàn)有的貪吃蛇游戲,而是要把自己想到的再加上所學(xué)的知識,遇到問題不能怕, 而是要專心找出問題的原因, 再回來看看書本的知識, 不懂的還可以問問老師。 編程過程還要養(yǎng)成良好的編程習(xí)慣, 這樣不僅自己能夠很好看懂自己的代碼, 也讓人家容易看懂自己的代碼, 而不至于代碼知識自己會看, 出來問題只有自己會解決而其他人都不會解決; 遇到問題時(shí)要考慮最簡單的解決方案

21、, 只有簡單的方案不能滿足要求時(shí)再考慮復(fù)雜的方案。 最主要編程還是要多與人溝通, 不會的不能立即問別人, 但是一段時(shí)間后解決不了時(shí)還是應(yīng)該向別人請教請教, “三人行必有我?guī)煛闭沁@個意思。通過這次實(shí)驗(yàn),我深刻地體會到了面向?qū)ο笈c面向過程的區(qū)別。程序在最初設(shè)計(jì)時(shí)由于面向?qū)ο蟮乃枷氩粔虺墒欤?導(dǎo)致在最后想要增加一些新的功能時(shí), 出現(xiàn)了一些麻煩。 總之, 我們還需要進(jìn)一步提升自己的能力。6. 參考文獻(xiàn)C語言程序設(shè)計(jì)武雅麗 清華大學(xué)出版社 C+ 面向?qū)ο蟪绦蛟O(shè)計(jì) 譚浩強(qiáng) 清華大學(xué)出版社C語言課程設(shè)計(jì)案例精編李麗娟中國水利水電出版社附錄 : 源程序/ 程序名稱:貪吃蛇/ 制作:莫新存/ 編譯環(huán)境: Vi

22、sual C+ 6.0 , EasyX/#include <iostream>#include <graphics.h>#include <stdlib.h>#include <conio.h>#include <dos.h>#include <time.h>#include <stdio.h>#include <vector>#define random(a,b) (rand()%(b)-(a)+(a)#pragma comment(lib,"Winmm.lib")/加入背景音

23、樂時(shí)使用using namespace std;#define MAX_JOINTS200#define MV_RIGHT1#define MV_LEFT2#define MV_UP3#define MV_DOWN4int rnd1,rnd2;vector<int>vox;vector<int>voy;void InitGraph(void);void DrawFence(void);void GameOver(int score);void GamePlay(void);void PrScore(int score);void fun_pause();void fun

24、_reset();void fun_obstacle();struct Foodint x;int y;int addFood;/* 圖形界面初始化函數(shù)*/* 繪制游戲場景*/* 結(jié)束游戲 */* 玩游戲具體過程*/* 顯示分?jǐn)?shù)*/* 暫停游戲*/* 重置游戲*/* 設(shè)置障礙物 */* 食物的結(jié)構(gòu)體定義*/* 食物的橫坐標(biāo)*/* 食物的縱坐標(biāo)*/* 判斷是否要出現(xiàn)食物的變量*/struct Snakeint xMAX_JOINTS;int yMAX_JOINTS;int joint;int direction;int life;/* 蛇的結(jié)構(gòu)體定義*/* 保存蛇身每一節(jié)位于屏幕上的列坐標(biāo)*/*

25、 保存蛇身每一節(jié)位于屏幕上的行坐標(biāo)*/* 蛇的節(jié)數(shù)*/* 蛇移動方向 */*蛇的生命,0 活著 ,1 死亡 */void play()initgraph(800,600);InitGraph();DrawFence();GamePlay(); getch();int main () mciSendString("play mo.mp3", NULL, 0, NULL);/播放音樂play();return 0;/初始化void InitGraph()cleardevice();setbkcolor(BLUE);setcolor(WHITE);cleardevice();se

26、tfont(25, 0, _T(" 微軟雅黑 ");outtextxy(170,150,"Greedy Snake");outtextxy(219,254,"Ready?");getch();setbkcolor(0); cleardevice();/繪制游戲場景void DrawFence()int i;setbkcolor(LIGHTGREEN);setlinestyle(PS_SOLID, 5);/畫圍墻setfillstyle(LIGHTBLUE);for (i=50; i<=591; i+=10)/ rectangle

27、(i, 40, i+10, 49);/ 上邊bar(i,40,i+7,47);bar(i, 551, i+7,558);/下邊f(xié)or (i=40; i<=550; i+=10)bar(50, i, 57, i+7);/左邊bar(591, i, 598, i+7);/ 右邊 /結(jié)束游戲 void GameOver(int score)cleardevice();PrScore(score);setcolor(RED);setfont(80, 0, _T(" 微軟雅黑 ");outtextxy(100, 200, "GAME OVER");mciSe

28、ndString("close mo.mp3", NULL, 0, NULL); /關(guān)閉音樂 getch();exit(0);/輸出成績void PrScore(int score)char str_score10;/setfillstyle(YELLOW);/bar(50, 15, 220, 35);/setcolor(6);/setfont(25, 0, _T(" 微軟雅黑 ");/setfillstyle(BLACK);setbkmode(TRANSPARENT);/-new-BeginBatchDraw();setfillstyle(BLACK)

29、;bar(601,0,800,600);setfont(60, 0, _T(" 微軟雅黑 ");setcolor(YELLOW);outtextxy(625, 30, _T(" 貪吃蛇 ");setfont(30, 0, _T(" 微軟雅黑 ");setcolor(LIGHTGREEN);outtextxy(625, 140, _T(" 制作:莫新存");outtextxy(625, 170, _T(" 班級:24041001");outtextxy(625, 200, _T(" 學(xué)號

30、:19");setfont(25, 0, _T(" 微軟雅黑 ");setcolor(CYAN);outtextxy(625, 380, _T(" 上: W");outtextxy(625, 400, _T(" 下: S");outtextxy(625, 420, _T(" 左: A");outtextxy(625, 440, _T(" 右: D");outtextxy(625, 460, _T(" 分?jǐn)?shù): ");outtextxy(625, 490, _T(&qu

31、ot; 暫停( P 鍵) ");outtextxy(625, 520, _T(" 重新游戲( R 鍵) ");setcolor(LIGHTBLUE);sprintf(str_score,"%i",score);outtextxy(680, 460, str_score);EndBatchDraw();if(score>0 && score%50=0) fun_obstacle();void GamePlay()int i, key;/ 控制游戲速度*/記錄游戲得分/食物結(jié)構(gòu)體變量/蛇結(jié)構(gòu)體變量int gamespeed =

32、200;int score = 0;struct Food food;struct Snake snake;food.addFood = 1;/1 表示需要出現(xiàn)新食物 ,0 表示已經(jīng)存在食物snake.life = 0;/置蛇的生命狀態(tài)為活著snake.direction = MV_RIGHT;/置蛇頭方向往右snake.x0 = 100; snake.y0 = 100;/置蛇頭初始位置snake.x1 = 110; snake.y1 = 100;snake.joint = 2;/置蛇的初始節(jié)數(shù)為 2PrScore(score);/顯示游戲得分重復(fù)玩游戲,直到按Esc鍵結(jié)束srand(time

33、(NULL);while (1)while (!kbhit() mciSendString("play mo.mp3", NULL, 0, NULL);/播放音樂if (food.addFood = 1)/需要出現(xiàn)新食物food.x = rand() % 400 + 60;food.y = rand() % 350 + 60;/食物出現(xiàn)后必須在整格內(nèi)才能讓蛇吃到 while (food.x%10 != 0)food.x+;while (food.y%10 !=0) food.y+;food.addFood=0;/畫面上有食物if (food.addFood=0)/畫面上有食

34、物,則顯示setcolor(GREEN);rectangle(food.x, food.y, food.x+10, food.y-10);/在沒有按鍵的情況下,蛇自己移動身體for (i=snake.joint-1; i>0; i-)/蛇的每個節(jié)往前移動snake.xi = snake.xi-1;snake.yi = snake.yi-1;/1,2,3,4 表示右,左 ,上 ,下四個方向 ,來決定蛇頭的移動switch(snake.direction)case MV_RIGHT: snake.x0 += 10; break;case MV_LEFT: snake.x0 -= 10; br

35、eak;case MV_UP:snake.y0 -= 10; break;case MV_DOWN: snake.y0 += 10; break;/從蛇的第四節(jié)開始判斷是否撞到自己,因?yàn)樯哳^為兩節(jié),第三節(jié)不可能拐過來for (i=3; i<snake.joint; i+)if (snake.xi=snake.x0 && snake.yi=snake.y0) GameOver(score);/顯示失敗snake.life = 1;/蛇死*/break;/判斷蛇是否撞到墻壁if (snake.x0<55 | snake.x0>595 | snake.y0<5

36、5 | snake.y0>455)GameOver(score);/本次游戲結(jié)束snake.life = 1;/蛇死 for(int obs_i = 0; obs_i<vox.size(); obs_i+)/ 判斷是否撞到障礙物if(voxobs_i=snake.x0 && voyobs_i=snake.y0) GameOver(score); / 以上三種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始if (snake.life = 1) break;if (snake.x0=food.x && snake.y0=food.y)/吃到食物后/把畫面上的食物清除 setcolor(0);rectangle(food.x, food.y, food.x+10, food.y-10);/新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置/蛇的身體長一節(jié)/畫面上需要出現(xiàn)新食物/輸出新得分snake.xsnake.joint =-20; snake.ysnake.joint =-20;snake.joint+;food.addFoo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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

提交評論