该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
else {moveto(lastheadx,lastheady);putimage(lastheadx,lastheady,p2,COPY_PUT);} /*掩盖当蛇为一节时的足迹*/
if(snake.x[0]==foodx&&snake.y[0]==foody)
{
score1+=100;score(); /*更新分数*/
snake.node+=1;
if(snake.node-1>1){snake.x[snake.node-1]=lasttailx;snake.y[snake.node-1]=lasttaily;}
else {snake.x[snake.node-1]=lastheadx;snake.y[snake.node-1]=lastheady;}
food();
}
for(i=1;i
{if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])gameover();}
}
void move()
{
setbkcolor(GREEN);
setcolor(RED);
cleardevice();
score();
snake.node=1;
startxy();
food();
while(1)
{
while(!kbhit())
{
while(snake.direction==1&&snake.y[0]>=14)
{ lastheadx=snake.x[0];lastheady=snake.y[0];
snake.y[0]-=14;
printsnake();
delay(speed);
if(snake.y[0]==0)
gameover();
break;
}
while(snake.direction==2&&snake.y[0]<=448)
{
lastheadx=snake.x[0];lastheady=snake.y[0];
snake.y[0]+=14;
printsnake();
delay(speed);
if(snake.y[0]==462)
gameover(); break;
}
while(snake.direction==3&&snake.x[0]>=14)
{
lastheadx=snake.x[0];lastheady=snake.y[0];
snake.x[0]-=14;
printsnake();
delay(speed);
if(snake.x[0]==0)
gameover(); break;
}
while(snake.direction==4&&snake.x[0]<616)
{
lastheadx=snake.x[0];lastheady=snake.y[0];
snake.x[0]+=14;
printsnake();
delay(speed);
if(snake.x[0]==616)
gameover();
break;
}
}
key=bioskey(0);
switch(key)
{
case UP:snake.direction=(snake.direction==2?2:1);break;
case DOWN:snake.direction=(snake.direction==1?1:2); break;
case LEFT:snake.direction=(snake.direction==4?4:3); break;
case RIGHT:snake.direction=(snake.direction==3?3:4); break;
case ESC:exit(0);
}
}
}
main()
{
int gdriver=DETECT,gmode,x,y;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&gmode,"");
setbkcolor(GREEN);
setcolor(RED);
cleardevice();
rectangle(0,0,14,14);setfillstyle(1,4); floodfill(5,5,4);
p1=malloc(imagesize(0,0,14,14));
getimage(0,0,14,14,p1);
rectangle(50,50,64,64); setfillstyle(1,14);floodfill(55,55,4);
p3=malloc(imagesize(50,50,64,64));
getimage(50,50,64,64,p3);
p2=malloc(imagesize(100,100,114,114));
getimage(100,100,114,114,p2);
p4=malloc(imagesize(100,200,105,600));
getimage(100,100,200,600,p4);
move();
getch();
closegraph();
}