猫和老鼠
#include <iostream> using namespace std; int main() { int n,m = 0,m1 = 0,x,y,x1,y1,z = 0; cin>>n; char a[10][10]; for(int i = 1;i<=n;i++){ for(int j = 0;j<10;j++){ for(int k = 0;k<10;k++){ cin>>a[j][k]; if(a[j][k]=='M'){ x = j; y = k; }else if(a[j][k]=='C'){ x1 = j; y1 = k; } } } while(z<100 && (x!=x1 || y!=y1)){ if(m==0 && x-1>=0 && a[x-1][y]!='*'){ x--; }else if(m==1 && y+1<10 && a[x][y+1]!='*'){ y++; }else if(m==2 && x+1<10 && a[x+1][y]!='*'){ x++; }else if(m==3 && y-1>=0 && a[x][y-1]!='*'){ y--; }else{ m = (m+1)%4; } if(m1==0 && x1-1>=0 && a[x1-1][y1]!='*'){` x1--; }else if(m1==1 && y1+1<10 && a[x1][y1+1]!='*'){ y1++; }else if(m1==2 && x1+1<10 && a[x1+1][y1]!='*'){ x1++; }else if(m1==3 && y1-1>=0 && a[x1][y1-1]!='*'){ y1--; }else{ m1 = (m1+1)%4; } z++; } if(x==x1 && y==y1){ cout<<z; }else{ cout<<"-1"; } } return 0; }.