#include<bits/stdc++.h>
using namespace std;
char a[12][12];
int x,y,m,n,step,na=1,nb=1;
void run(int&a1,int&a2,int&face){
if(face==1){
if(a[a1-1][a2]!='*')
swap(a[a1][a2],a[a1-1][a2]);
else
face=2;
return;
}
if(face==2){
if(a[a1][a2+1]!='*')
swap(a[a1][a2],a[a1][a2+1]);
else
face=3;
return;
}
if(face==3){
if(a[a1+1][a2]!='*')
swap(a[a1][a2],a[a1+1][a2]);
else
face=4;
return;
}
if(face==4){
if(a[a1][a2-1]!='*')
swap(a[a1][a2],a[a1][a2-1]);
else
face=1;
return;
}
}
int main(){
for(int i=0;i<12;i++)
for(int j=0;j<12;j++)
a[i][j]='*';
for(int i=1;i<11;i++)
for(int j=1;i<11;j++)
{
cin>>a[i][j];
if(a[i][j]=='C'){
x=i;
y=j;
}
if(a[i][j]=='F'){
m=i;
n=j;
}
}
//卡其脱离太
while(1){
run(x,y,na);
run(m,n,nb);
step++;
if(x==m&&y==n){
cout<<step<<endl;
return 0;
}
if(step==100000){
cout<<0;
return 0;
}
}
}
或者说我的思路有什么问题,求解答(拜谢)