代码如下:
#include<iostream>
using namespace std;
struct nodef {
int x,y;
int w=4;
} f;
struct nodec {
int x,y;
int w=4;
} c;
char a[15][15];
void bf() {
if(f.w==1)
f.y++;
if(f.w==2)
f.x++;
if(f.w==3)
f.y--;
if(f.w==4)
f.x--;
return;
}
void bc() {
if(c.w==1)
c.y++;
if(c.w==2)
c.x++;
if(c.w==3)
c.y--;
if(c.w==4)
c.x--;
return;
}
int main() {
for(int i=1; i<=10; i++)
for(int j=1; j<=10; j++)
cin>>a[i][j];
for(int i=1; i<=10; i++)
for(int j=1; j<=10; j++) {
if(a[i][j]=='C') {
c.x=i;
c.y=j;
}
if(a[i][j]=='F') {
f.x=i;
f.y=j;
}
}
int gx,gy,cnt=0;
while(1) {
cnt++;
bf();
gx=f.x;
gy=f.y;
if(a[f.x][f.y]=='*') {
f.x=gx;
f.y=gy;
if(f.w==4)
f.w=1;
else f.w++;
bf();
}
bc();
gx=c.x;
gy=c.y;
if(a[c.x][c.y]=='*') {
c.x=gx;
c.y=gy;
if(c.w==4)
c.w=1;
else c.w++;
bc();
}
if(f.x==c.x&&f.y==c.y) {
cout<<cnt;
return 0;
}
}
cout<<"0";
return 0;
}
运行结果如下:

输出了一个很大的数......