为啥运行不了(。ŏ﹏ŏ)
#include<bits/stdc++.h>
#include<windows.h>
#include<ctime>
#include<conio.h>
using namespace std;
#define getrand(a,b)(rand()%b+a)
int len=3;
int food=1;
int fangxiang[5][2]={{0,0},{0,-1},{0,1},{-1,0},{1,0}};
int x1=20,y1=12;
int d=2;
COORD head;
int room[32][32];
void go(int x,int y)
{
COORD coord;
coord.X=x*2;
coord.Y=y;
HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(a,coord);
}
void move()
{
head.X+=fangxiang[d][0];
head.Y+=fangxiang[d][1];
if(room[head.Y][head.X]!=0&&room[head.Y][head.X]!=-2)
{
return;
}
if(room[head.Y][head.X]==-2)
{
len++;
food=0;
}
for(int i=1;i<=xl+1;i++)
for(int j=1;j<=yl+1;j++)
if(room[j][i]>=1)
if(room[head.Y][head.X]!=-2)
{
room[j][i]--;
if(room[j][i]==0)
{
go(i,j);printf(" ")
}
}
room[head.Y][head.X]=len;
go(head.X,head.Y);
printf("□");
}
void makefood()
{
int randx=getrand(1,xl),randy=getrand(1,yl);
while(room[randy][randx]!=0)
{
randx=getrand(1,xl);
randy=getrand(1,yl);
}
room[randy][randx]=-2
go(randx,randy);
printf("●");
food=1;
}
int main()
{
CONSOLE_CURSOR_INFO cursor_info={1,0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
unsigned seed=time(0);
srand(seed);
for(int i=0;i<=yl+1;i++)
for(int j=0;j<=xl+1;j++)
if(i==0||i==yl+1||j==0||j==0||j==xl+1)
{
room[i][j]=-1;
go(j,i);
printf("■");
}
makefood();
while(!kbhit()){sleep(10);}
d=-3;
head.X=xl/2+1;
head.Y=yl/2+1;
room[head.Y][head.X]=len;
go(head.X,head.Y);printf("□");
while(1)
{
int ld=d;
for(int i=1;i<=25;i++)
{
if(kbhit())
{
int key=0;
key=getch();
if(key==224)
{
key=getch();
if(key==w)d=1;
else if(key==s)d=2;
else if(key==a)d=3;
else if(key==d)d=4;
}
}
Sleep(5);
}
if(ld!=d&&(ld+d==3||ld+d==7))d+ld;
move():
if(room[head.Y][head.X]!=len)
{
go(0,yl+3);
Sleep(250);
return 0;
}
if(food==0)makefood();
}
return 0;
}