#include
#include
#include
#include
#include
#include
#define N 4
struct snake
{ int x;
int y;
}snk[100];
struct food
{ int x;
int y;
}food;
void snake(int len)//初始化蛇身
{ int i=0;
srand(time(NULL));
snk[i].x=rand()%50+10;
snk[i].y=rand()%30+10;
switch(rand()%4)
{ case 0:
for(i=1;i
{snk[i].x=snk[i-1].x+1;
snk[i].y=snk[i-1].y;}break;
case 1:
for(i=1;i
{snk[i].x=snk[i-1].x-1;
snk[i].y=snk[i-1].y;}break;
case 2:
for(i=1;i
{snk[i].x=snk[i-1].x;
snk[i].y=snk[i-1].y+1;}break;
case 3:
for(i=1;i
{snk[i].x=snk[i-1].x;
snk[i].y=snk[i-1].y-1;}break;
}
}
void delay(int sec)//调节速度
{ time_t start_time, cur_time;
time(&start_time);
do { time(&cur_time); }
while((cur_time - start_time)
}
void move(int len)//移动以及转向
{ char direct;
cin>>direct;
struct snake head={snk[0].x,snk[0].y};
if(direct==NULL)
{ snk[0].x=2*snk[1].x-snk[0].x;
snk[0].y=2*snk[1].y-snk[0].y;
}
if(direct=='W')
{ snk[0].x=3*snk[1].x-2*snk[0].x;
snk[0].y=3*snk[1].y-2*snk[0].y;
for(int i=len-1;i>1;i--)
{ snk[i].x=snk[i-1].x;
snk[i].x=snk[i-1].x;
}
snk[1].x=head.x;
snk[1].y=head.y;
}
if(direct=='A'||direct=='D')
{ snk[0].x=snk[0].x+snk[0].y-snk[1].y;
snk[0].y=snk[0].y+snk[0].x-snk[1].x;
}
for(int i=len-1;i>1;i--)
{ snk[i].x=snk[i-1].x;
snk[i].x=snk[i-1].x;
}
snk[1].x=head.x;
snk[1].y=head.y;
}
void FOOD(int len)//食物出现如出现在蛇身上再次生成
{ while(1)
{ int flag=0;
srand(time(NULL));
food.x=rand()%50+10;
food.y=rand()%30+10;
for(int i=0;i
if(food.x==snk[i].x&&food.y==snk[i].y)
flag=1;
if(flag==0)
break;
}
}
void print(int len)
{ int i,j,t;
for(i=0;i
cout
for(j=1;j
{ cout
for(i=1;i
for(t=0;t
{ if(snk[t].x==i&&snk[t].y==j)
cout
else
cout
}
cout
}
for(i=0;i
cout
}
void main()
{ int num;
cout
cin>>num;
if (num==1)
{ int static len=N,score=0;
snake(N);
FOOD(len);
while(1)
{
move(len);
delay(2);
if(snk[0].x==food.x&&snk[0].y==food.y)
{
len++;
score++;
FOOD(len);
}
if(snk[0].x==0||snk[0].x==69||snk[0].y==0||snk[0].y==49)
{
cout<<"game over"<<endl;
cout<<score;
break;
}
print(len);
Sleep(60);//_sleep();
system("Cls");
}
}
else
exit(1);
}
自己写的贪吃蛇代码,找不出bug,运行出来是黑屏,请大家帮忙看一下
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
悬赏问题
- ¥15 链接问题 C++LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺
- ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接