C语言小游戏

2021-12-16 教育 82阅读
贪吃蛇的源代码

#include
#include
#include
#include

typedefstructsnake
{
inta;
intb;
structsnake*u;
structsnake*n;
}snake,*snake1;
typedefstructfood
{
inta;
intb;
}food;
voidmain()
{
charc,c0='d';
inti,j,k,n=1,t,at;
snakep,q;
snake*dd,*dd0,*dd1,*dd2;
foodf;
srand(time(NULL));
p.u=NULL;
p.n=&q;
p.a=5;p.b=6;q.a=5;q.b=5;
q.u=&p;q.n=NULL;
dd=dd2=&q;
f.a=(rand()%15+1);
f.b=(rand()%15+1);
while(1)
{
srand(time(NULL));
system("cls");
for(i=0;i<17;i++)
{
for(j=0;j<17;j++)
{

if(i==0)
printf("▁");
elseif(i==16)
printf("▔");
elseif(j==0)
printf("▕");
elseif(j==16)
printf("▏");
elseif(i==p.a&&j==p.b)
printf("■");
elseif(i==f.a&&j==f.b)
printf("★");
else
{
t=0;
dd=dd2;
for(k=0;k {
if(i==dd->a&&j==dd->b)
{
printf("□");
t=1;
break;
}

dd=dd->u;
}
if(t==0)
printf("");
}

}printf("\n");
}
at=0;
dd=dd2;
for(i=0;i {
if(p.a==dd->a&&p.b==dd->b)
{
printf("gameover!!\n");
exit(0);
}
dd=dd->u;
}
if(p.a==f.a&&p.b==f.b)
{
dd=dd2;
at=1;
f.a=(rand()%15+1);
f.b=(rand()%15+1);
for(i=0;i {
if(f.a==dd->a&&f.b==dd->b)
{
f.a=dd2->a;
f.b=dd2->b;
break;
}
}
n++;
}
if(kbhit())
{
c=getch();
dd=dd2;
if(c=='w'&&c0!='s')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
if(p.a==1)
p.a=15;
else
p.a=(p.a-1)%15;
}
elseif(c=='s'&&c0!='w')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
p.a=(p.a%15)+1;
}
elseif(c=='a'&&c0!='d')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
if(p.b==1)
p.b=15;
else
p.b=(p.b-1)%15;
}
elseif(c=='d'&&c0!='a')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
p.b=(p.b%15)+1;
}
else
{
gotoqq;
}
c0=c;
}
else
{
qq: if(c0=='w')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
if(p.a==1)
p.a=15;
else
p.a=(p.a-1)%15;
}
elseif(c0=='s')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
p.a=(p.a%15)+1;
}
elseif(c0=='a')
{

if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
if(p.b==1)
p.b=15;
else
p.b=(p.b-1)%15;
}
elseif(c0=='d')
{
if(at==1)
{
dd0=(snake1)malloc(sizeof(snake));
dd0->a=dd2->a;dd0->b=dd2->b;
dd0->n=NULL;dd0->u=dd2;
dd2=dd0;
}
dd=dd2;
for(i=0;i {
dd1=dd->u;
dd->b=dd1->b;
dd->a=dd1->a;
dd=dd->u;
}
p.b=(p.b%15)+1;

}
}
fflush(stdin);
dd=&q;
_sleep(0);
}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com