死循环了
查看原帖
死循环了
213465
zhurunlin68楼主2021/7/30 09:10
#include<bits/stdc++.h>
using namespace std;
char cn[15][15];
int a,b,c,d,e,f=1,g=1,x=1,y=1,ans;
bool bb[1000140];
int main()
{
	for(int i=1;i<=10;i++)
	   for(int j=1;j<=10;j++)
	   {
	   	   cin>>cn[i][j];
	   	   if(cn[i][j]=='F')
	   	   {
	   	   	  a=i;
	   	   	  b=j;
	   	   }
	   	   if(cn[i][j]=='C')
	   	   {
	   	   	  c=i;
	   	   	  d=j;
	   	   }
	   }
	while(1)
	{
		e=a+b*10+c*100+d*1000+e*10000+f*40000;
		if(bb[e])
		{
			cout<<0<<endl;
			return 0;
		}
		bb[e]=1;
		cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<endl;
		if(a==c&&b==d)
		{
			cout<<ans<<endl;
			return 0;
		}
		if(f==1)
		{
			if(cn[a-1][b]=='.'&&a-1<=10&&a-1>=1&&b<=10&&b>=1)
				a--;
			else x=2;
		}
		if(f==2)
		{
			if(cn[a][b+1]=='.'&&a<=10&&a>=1&&b+1<=10&&b+1>=1)
			  b++;
			else x=3;
		}
		if(f==3)
		{
			if(cn[a+1][b]=='.'&&a-1<=10&&a-1>=1&&b<=10&&b>=1)
			  a++;
			else x=4;
		}
		if(f==4)
		{
			if(cn[a][b-1]=='.'&&a<=10&&a>=1&&b-1<=10&&b-1>=1)
			  b--;
			else x=1;
		}
		if(g==1)
		{
			if(cn[c-1][d]=='.'&&c-1<=10&&c-1>=1&&d<=10&&d>=1)
				c--;
			else y=2;
		}
		if(g==2)
		{
			if(cn[c][d+1]=='.'&&c<=10&&c>=1&&d+1<=10&&d+1>=1)
			  d++;
			else y=3;
		}
		if(g==3)
		{
			if(cn[c+1][d]=='.'&&c+1<=10&&c+1>=1&&d<=10&&d>=1)
		      c++;
			else y=4;
		}
		if(g==4)
		{
			if(cn[c][d-1]=='.'&&c<=10&&c>=1&&d-1<=10&&d-1>=1)
			  d--;
			else y=1;
		}
		f=x;
		g=y;
		ans++;
	}
} 
2021/7/30 09:10
加载中...