#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char a[11][11];
int i,j,xn,yn,xr,yr,tn=1,tr=1,n=0,x[4]={-1,0,1,0},y[4]={0,1,0,-1};
for(i=0;i<10;i++)
for(j=0;j<11;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]=='C')
{
xn=i;
yn=j;
}
else if(a[i][j]=='F')
{
xr=i;
yr=j;
}
}
while(n<2000)
{
if(xn+x[tn-1]<10&&yn+y[tn-1]<10&&xn+x[tn-1]>=0&&yn+y[tn-1]>=0&&a[xn+x[tn-1]][yn+y[tn-1]]!='*')
{
xn+=x[tn-1];
yn+=y[tn-1];
}
else
{
tn=tn==4?1:tn+1;
}
if(xr+x[tr-1]<10&&yr+y[tr-1]<10&&xr+x[tr-1]>=0&&yr+y[tr-1]>=0&&a[xr+x[tr-1]][yr+y[tr-1]]!='*')
{
xr+=x[tr-1];
yr+=y[tr-1];
}
else
{
tr=tr==4?1:tr+1;
}
n++;
if(xn==xr&&yn==yr)
{
printf("%d",n);
return 0;
}
}
printf("0");
return 0;
}
这个是我的代码,只有22分,其他全红。第一个测试点就错了,输入是..... ........* *......... .......... ........ *....** F........ ..... .C....... ........ 输出是58 我这个代码跑出来也是58啊,哪错了啊