




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第C語言基于EasyX實現(xiàn)貪吃蛇setlinecolor(BLACK);//矩形邊框線的顏色
setfillcolor(RGB(rand()%255,rand()%255,rand()%255));//內(nèi)部填充顏色
fillrectangle(snake-xy[i].x,snake-xy[i].y,snake-xy[i].x+10,snake-xy[i].y+10);
}
voidmoveSnake(structSnake*snake)
//除了第一節(jié)之外,后面每一節(jié)都是前面一節(jié)的坐標
for(inti=snake-ii--)
{
snake-xy[i].x=snake-xy[i-1].x;
snake-xy[i].y=snake-xy[i-1].y;
}
//第一節(jié)的處理
switch(snake-postion)
{
caseright:
snake-xy[0].x+=10;
break;
caseleft:
snake-xy[0].x-=10;
break;
casedown:
snake-xy[0].y+=10;
break;
caseup:
snake-xy[0].y-=10;
default:
break;
}
voidkeyDown(structSnake*snake)
charuserkey=0;
userkey=_getch();
switch(userkey)
{
caseright:
if(snake-postion!=left)
snake-postion=right;
break;
caseleft:
if(snake-postion!=right)
snake-postion=left;
break;
casedown:
if(snake-postion!=up)
snake-postion=down;
break;
caseup:
if(snake-postion!=down)
snake-postion=up;
break;
}
voidinitFood(structFood*food,structSnake*snake)
food-fdxy.x=rand()%64*10;
food-fdxy.y=rand()%48*10;
food-flag=1;
//如果食物出現(xiàn)在蛇身上,重新產(chǎn)生坐標
for(inti=0;isnake-i++)
{
if(food-fdxy.x==snake-xy[i].xfood-fdxy.y==snake-xy[i].y)
{
food-fdxy.x=rand()%64*10;
food-fdxy.y=rand()%48*10;
}
}
voiddrawFood(structFood*food)
setlinecolor(BLACK);//矩形邊框線的顏色
setfillcolor(RGB(rand()%255,rand()%255,rand()%255));
fillrectangle(food-fdxy.x,food-fdxy.y,food-fdxy.x+10,food-fdxy.y+10);
voideatFood(structFood*food,structSnake*snake)
//蛇邊長
//食物重新生成
//分數(shù)增加
if(snake-xy[0].x==food-fdxy.xsnake-xy[0].y==food-fdxy.y)
{
snake-num++;
food-eatgrade+=10;
food-flag=0;
}
//蛇死亡,游戲結束
intsnakeDie(structSnake*snake)
if(snake-xy[0].x640||snake-xy[0].x0||snake-xy[0].y480||snake-xy[0].y0||(snake-xy[0].x+10)640||(snake-xy[0].x+10)0||(snake-xy[0].y+10)480||(snake-xy[0].y+10)0)
{
outtextxy(200,200,"撞墻");
//MessageBox(hwnd,"游戲結束,點擊確定重新開始","撞墻",MB_OKCANCEL);
return1;//返回1,游戲結束
}
for(inti=1;isnake-i++)
{
if(snake-xy[0].x==snake-xy[i].xsnake-xy[0].y==snake-xy[i].y)
{
outtextxy(200,200,"自殺");
//MessageBox(hwnd,"游戲結束,點擊確定重新開始","自殺",MB_OKCANCEL);
return1;
}
}
return0;
intwinGame(structSnake*snake)
if(snake-num==length)
{
outtextxy(200,200,"勝利,恭喜通關");
//MessageBox(hwnd,"游戲結束,點擊確定重新開始","恭喜通關",MB_OKCANCEL);
return1;//返回1,游戲結束
}
else
{
return0;
}
voidshowGrade(structFood*food)
chargrade[100]="";
sprintf(grade,"%d",food-eatgrade);
setbkmode(TRANSPARENT);
settextcolor(LIGHTBLUE);
outtextxy(560,20,"分數(shù)");
outtextxy(610,20,grade);
voidpauseMoment()
if(_getch()==32)
{
while(_getch()!=32);
}
}
test.cpp
#include"game.h"
intmain()
mciSendString(L"open1.mp3aliasbkmusic",NULL,0,NULL);//打開音樂文件
mciSendString(L"playbkmusicrepeat",NULL,0,NULL);
//循環(huán)播放音樂
srand((unsignedint)time(NULL));//隨機數(shù)種子
structSnakesnake;//創(chuàng)建蛇
structFoodfood;//創(chuàng)建食物
hwnd=initgraph(640,480);//初始化窗口
setbkcolor(WHITE);//設置窗口為白色
intkey=0;//接收最終的彈窗指令,判斷是否繼續(xù)游戲
do
{
initSnakeFood(snake,food);//初始化蛇和食物的分數(shù)
key=0;
while(1)
{
BeginBatchDraw();緩沖區(qū)打印,防止閃屏
cleardevice();//刷新
if(food.flag==0)
{
initFood(food,snake);
}
drawFood(food);//畫食物
eatFood(food,snake);//是否吃食物
showGrade(food);//打印食物
drawSnake(snake);//畫蛇
EndBatchDraw();//緩沖區(qū)打印
if(snakeDie(snake))//判斷是否四方
{
break;
}
if(winGame(snake))//判斷是否勝利
{
break;
}
while(_kbhit())//如果有按鍵則進入,否則不進入循環(huán)
{
pauseMoment();//暫停
keyDown(snake);
}
moveSnake(snake);//移動蛇
Sleep(100);
}
key=MessageBox(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CCPITCSC 087-2021跨境電子商務知識產(chǎn)權保護指南
- T/CCOA 55-2023營養(yǎng)強化面條
- T/CCBD 19-2022品牌餐廳評價規(guī)范
- T/CAQI 18-2016嬰幼兒室內(nèi)空氣質(zhì)量分級
- java模塊面試題及答案
- 高考聯(lián)考試題及答案
- 人類健康與長壽秘密課件
- T/CAEPI 49-2022污水處理廠低碳運行評價技術規(guī)范
- 人的健康課件
- 競選大隊委員演講稿
- 工資調(diào)整單模板
- 中國各鄉(xiāng)鎮(zhèn)名錄大全、街道名錄大全(甘肅省)
- GB∕T 2518-2019 連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- 安徽省2022年中考地理真題試卷(圖片版含答案)
- 青海省部門統(tǒng)計數(shù)據(jù)直報系統(tǒng)
- 常見輸液反應及處理
- 大氣商務勵志年終工作總結PPT模板課件
- 幼兒園辦園標準
- 10kV及以下架空配電線路設計技術規(guī)程
- 硅膠安全技術說明書(MSDS)
- 鋼筋加工下料自動計算表樣品
評論
0/150
提交評論