萌新求助(ヽ´ω`)
  • 板块灌水区
  • 楼主冶光_sama
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/9/23 00:01
  • 上次更新2023/11/5 12:46:02
查看原帖
萌新求助(ヽ´ω`)
389882
冶光_sama楼主2020/9/23 00:01

为啥运行不了(。ŏ﹏ŏ)

#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;
}
2020/9/23 00:01
加载中...