贪吃蛇代码
以下程序只是初步写了一个轮廓,希望高手能帮忙完善,增加3项功能
1.添加墙壁;
2.贪吃蛇会死;
3.有东西给蛇吃,并且蛇会变长.
#include
#include
#include
#define UP 1
#define LEFT 2
#define RIGHT 3
#define DOWN 4
int x[10];
int y[10];
int snakemode;
void snakemove(int xp,int yp)
{
int i;
for(i=1;i<10;i++)
{
x[10-i]=x[9-i];
y[10-i]=y[9-i];
}
x[0]=xp;
y[0]=yp;
}
void drawsnake()
{
int i;
for(i=0;i<9;i++)
{
gotoxy(x[i],y[i]);
putch('*');
}
gotoxy(x[9],y[9]);
putch(' ');
}
void main()
{
char c;
int loop=1;
int i;
int new_x,new_y;
clrscr();
gotoxy(30,13);
printf("Press any key to Start Game!");
getch();
clrscr();
for(i=0;i<10;i++)
{
x[i]=35+i*2;
y[i]=12;
}
snakemode=LEFT;
drawsnake();
while(loop)
{
c=getch();
clrscr();
new_x=x[0];new_y=y[0];
switch(c)
{
case 'i':
if(snakemode==DOWN) break;
new_y--;
if(new_y<1) new_y=24;
snakemove(new_x,new_y);
snakemode=UP;
break;
case 'j':
if(snakemode==RIGHT) break;
new_x-=2;
if(new_x<1) new_x=79;
snakemove(new_x,new_y);
snakemode=LEFT;
break;
case 'k':
if(snakemode==LEFT) break;
new_x+=2;
if(new_x>79) new_x=1;
snakemove(new_x,new_y);
snakemode=RIGHT;
break;
case 'm':
if(snakemode==UP) break;
new_y++;
if(new_y>24) new_y=1;
snakemove(new_x,new_y);
snakemode=DOWN;
break;
case 'x':
loop=0;
break;
}
drawsnake();
}
clrscr();
gotoxy(35,13);
printf("Game Over!");
getch();
}