案例1吃蛇游戏
#define N 200
#包含
#包含
#包含
#define LEFT0x4b00
#define RIGHT0x4d00
#define DOWN0x5000
#define UP0x4800
#define ESC0x011b
int i,key;
int score=0; //得分/
int gamespeed=50000; /*游戏速度自己调整*
结构福特
{
int x; /*食物横坐标*
int y; /*食物纵坐标/
输入是; /*判断是否会出现食物的变量*
}food; /*食物结构*
结构快照
{
int x[N];
int y[N];
int node; /*蛇节数*
int direction; //蛇的移动方向/
输入生命; /*蛇的生命,0是活的,1是死的*
}snake;
voidinit(void; /*图形驱动程序*
voidclose(void; /*图形结束*
voiddrawk(void; //开始画面/
voidgameover(void; /*结束游戏*
voidgameplay(void; /*游戏的具体过程*
voidprscore(void; /*输出成绩*
/*主函数*
语音主(语音)。
{
Init (; /*图形驱动程序*
DrawK (; //开始画面/
GamePlay (; /*游戏的具体过程*
类(; /*图形结束*
}
/*图形驱动程序*
语音初始化(void )。
{
int gd=DETECT,gm;
initgraph(GD,gm,' c:\tc ' );
cleardevice (;
}
/*开始画面、左上坐标(50,40 )、右下坐标(610,460 )的围墙) /
卷影(卷影)。
{
/*setbkcolor(lightgreen ); */
设置(11 );
设置线样式(solid _ line,0,THICK_WIDTH ); /*设置线型*
for(I=50; i=600; I=10(/*画围墙) /
{
Rectangle(I,40,i10,49 ); /*上边/
Rectangle(I,451,i10,460 ); /*下/
}
for(I=40; i=450; i=10 )
{
Rectangle(50,I,59,i 10 ); /*左/
响应(601,I,610,i 10 ); /*右/
}
}
/*游戏的具体过程*
语音图形(语音)。
{
randomize (; /*随机数发生器*
food.yes=1; /*1表示需要新的食物,0表示已经存在食物*/
snake.life=0; /*活着/
snake.direction=1; /*方向为右/
snake.x[0]=100; snake.y[0]=100; //蛇头/
snake.x[1]=110; snake.y[1]=100;
snake.node=2; /*节数*
PrScore (; /*输出得分*/
wile(1)/*可以玩重复游戏,然后按ESC键退出(/
{
while (! kbhit () )/*没有按钮蛇自己移动身体) /
{
if(food.yes==1)/*需要新的食物出来(/
{
food.x=rand () @0 60;
food.y=rand () 50 60;
wile(food.x!=0()/*食物随机出现后,必须保证食物适合所有格,以便被蛇吃掉() /
food.x;
wile(food.y!=0)
food.y;
food.yes=0; /*画面上有食物*
}
if(food.yes==0)/*如果屏幕上有食物() /
{
设置(绿色);
Rectangle(food.x、food.y、food.x 10、food.y-10 );
}
for(I=snake.node-1; i0; I--//*蛇的各个角落向前移动