貪吃蛇源代碼_第1頁
貪吃蛇源代碼_第2頁
貪吃蛇源代碼_第3頁
貪吃蛇源代碼_第4頁
貪吃蛇源代碼_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、貪吃蛇源代碼.txt這世界上除了我誰都沒資格陪在你身邊。聽著,我允許你喜歡我。除了白頭偕老,我們沒別的路可選了什么時候想嫁人了就告訴我,我娶你。#include #include #include #include #include #define LEFT a#define RIGHT d#define DOWN s#define UP w#define ESC 27#define N 200 /*蛇的最大長度*/int i;char key;int score=0; /*得分*/int gamespeed=100; /*游戲速度自己調整*/struct Food int x; /*食物的橫

2、坐標*/ int y; /*食物的縱坐標*/ int yes; /*判斷是否要出現食物的變量*/food; /*食物的結構體*/struct Snake int xN; int yN; int node; /*蛇的節數*/ int direction; /*蛇移動方向*/ int life; /* 蛇的生命,0活著,1死亡*/snake;void Init(void); /*圖形驅動*/void Close(void); /*圖形結束*/void DrawK(void); /*開始畫面*/void GameOver(void); /*結束游戲*/void GamePlay(void); /*玩

3、游戲具體過程*/void PrScore(void); /*輸出成績*/*主函數*/void main(void) Init(); /*圖形驅動*/ DrawK(); /*開始畫面*/ GamePlay(); /*玩游戲具體過程*/ Close(); /*圖形結束*/*圖形驅動*/void Init(void) int gd=9,gm=2; initgraph(&gd,&gm, ); cleardevice();/*開始畫面,左上角坐標為(50,40),右下角坐標為(610,460)的圍墻*/void DrawK(void) /*setbkcolor(LIGHTGREEN);*/ setcol

4、or(LIGHTCYAN); setlinestyle(PS_SOLID,0,1); /*設置線型*/ for(i=50;i=600;i+=10) /*畫圍墻*/ rectangle(i,40,i+10,49); /*上邊*/ rectangle(i,451,i+10,460); /*下邊*/ for(i=40;i0;i-) /*蛇的每個環節往前移動,也就是貪吃蛇的關鍵算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4表示右,左,上,下四個方向,通過這個判斷來移動蛇頭*/ switch(snake.direction) case 1

5、: snake.x0+=10;break; case 2: snake.x0-=10;break; case 3: snake.y0-=10;break; case 4: snake.y0+=10;break; /*從蛇的第四節開始判斷是否撞到自己了,因為蛇頭為兩節,第三節不可能拐過來*/ for(i=3;isnake.node;i+) if(snake.xi=snake.x0&snake.yi=snake.y0) GameOver(); /*顯示失敗*/ snake.life=1;break; if(snake.x0595|snake.y0455) /*蛇是否撞到墻壁*/ GameOver(

6、); /*本次游戲結束*/ snake.life=1; /*蛇死*/ if(snake.life=1) /*以上兩種判斷以后,如果蛇死就跳出內循環,重新開始*/ break; if(snake.x0=food.x&snake.y0=food.y)/*吃到食物以后*/ setcolor(BLACK); /*把畫面上的食物東西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.xsnake.node=-20;snake.ysnake.node=-20; /*新的一節先放在看不見的位置,下次循環就取前一節的位置*/ snake.node+

7、; /*蛇的身體長一節*/ food.yes=1; /*畫面上需要出現新的食物*/score+=10; PrScore(); /*輸出新得分*/ setcolor(RED); /*畫出蛇*/ for(i=0;isnake.node;i+) rectangle(snake.xi,snake.yi,snake.xi+10,snake.yi-10); Sleep(gamespeed); setcolor(BLACK); /*用黑色去除蛇的的最后一節*/ rectangle(snake.xsnake.node-1,snake.ysnake.node-1, snake.xsnake.node-1+10,

8、snake.ysnake.node-1-10); /*endwhile(!kbhit)*/ if(snake.life=1) /*如果蛇死就跳出循環*/ break; key=getch(); /*接收按鍵*/ if (key = ESC) break; /*按ESC鍵退出*/ switch(key) case UP: if(snake.direction!=4) /*判斷是否往相反的方向移動*/ snake.direction=3; break; case RIGHT: if(snake.direction!=2) snake.direction=1; break; case LEFT: i

9、f(snake.direction!=1) snake.direction=2; break; case DOWN: if(snake.direction!=3) snake.direction=4; break; /*endwhile(1)*/*游戲結束*/void GameOver(void) cleardevice(); PrScore(); setcolor(RED); setfont(56,0,黑體); outtextxy(200,200,GAME OVER); getch();/*輸出成績*/void PrScore(void) char str10; setfillstyle(YELLOW);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論