救救小菜鸟
查看原帖
救救小菜鸟
1280492
Wh147258楼主2024/10/14 19:58
#include<bits/stdc++.h>
using namespace std;
char num[11][11];
struct xy{
	int x;
	int y;
	int Fx;
};
int zx[4]={-1,0,1,0};//控制前进
int zy[4]={0,1,0,-1};
bool ZhWpd(xy sum)
{
	if(sum.x<=10&&sum.y<=10&&sum.x>=1&&sum.y>=1&&num[sum.x][sum.y]!='*')
	{
		return 1;
	}
	else
	    return 0;
//		sum.Fx=(sum.Fx+1)%4;//(0+1)%4=1 (1+1)%4=2 (2+1)%4=3 (3+1)%4=0         
}


xy f;
xy c;
int main()
{
	f.Fx=0;
	c.Fx=0;
	for(int i=0;i<=11;i++)
	{
		for(int j=0;j<=11;j++)
		{
			num[i][j]='*';
		}
	}
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=10;j++)
		{
			cin>>num[i][j];
			if(num[i][j]=='F')
			{
				f.x=i;
				f.y=j;
			}
            if(num[i][j]=='C')
			{
				c.x=i;
				c.y=j;
			}
		}
	}
	bool flag=0;
	for(int i=0;i<=100000;i++)
	{
		if(ZhWpd(f)==0)
		{
			f.x+=zx[f.Fx];
			f.y+=zy[f.Fx];
		}
		else
		{
			f.Fx=(f.Fx+1)%4;
		}
		if(ZhWpd(c)==0)
		{
			c.x+=zx[c.Fx];
			c.y+=zy[c.Fx];
		}
		else
		{
			c.Fx=(c.Fx+1)%4;
	    }
	    if(c.x==f.x&&c.y==f.y)
	    {
			cout<<i;
			flag=1;
			break;
		}
	}
	if(flag==0)
	{
		cout<<0;
	}
	return 0;
}
2024/10/14 19:58
加载中...