首页 > 其他分享 >猫和老鼠

猫和老鼠

时间:2023-07-21 20:22:05浏览次数:37  
标签:Map 猫和老鼠 int ++ else -- &&

#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv) {
    int N,x,y,X,Y;
    cin>>N;
    for(int k=0;k<N;k++){
        int m=0,c=0,count=0;
        string Map[10];
        for(int j=0;j<10;j++){
            cin>>Map[j];
        }
        for(int i=0;i<10;i++){
            for(int j=0;j<10;j++){
                if(Map[i][j]=='C'){
                    X=i;
                    Y=j;
                }else if(Map[i][j]=='M'){
                    x=i;
                    y=j;
                }
            }
        }
        while(count<100 && (X!=x || Y!=y)){
            if(m==0&&x-1>=0&&Map[x-1][y]!='*'){
                x--;
            }else if(m==1&&y+1<10&&Map[x][y+1]!='*'){
                y++;
            }else if(m==2&&x+1<10&&Map[x+1][y]!='*'){
                x++;
            }else if(m==3 &&y-1>=0&&Map[x][y-1]!='*'){
                y--;
            }else{
                m=(++m)%4;
            }
            if(c==0&&X-1>=0&&Map[X-1][Y]!='*'){
                X--;
            }else if(c==1&&Y+1<10&&Map[X][Y+1]!='*'){
                Y++;
            }else if(c==2&&X+1<10&&Map[X+1][Y]!='*'){
                X++;
            }else if(c==3&&Y-1>=0&&Map[X][Y-1]!='*'){
                Y--;
            }else{
                c=(++c)%4;
            }
            ++count;
        }
        printf("%d\n",(X==x&&Y==y)?count:-1);
    }
    
    return 0;
}

 

标签:Map,猫和老鼠,int,++,else,--,&&
From: https://www.cnblogs.com/w6826301/p/17572333.html

相关文章

  • 【每日一题】LeetCode 913.猫和老鼠(hard题)
    题目两位玩家分别扮演猫和老鼠,在一张无向图上进行游戏,两人轮流行动。图的形式是:graph[a]是一个列表,由满足ab是图中的一条边的所有节点b组成。老鼠从节点1开始,第一个出发;猫从节点2开始,第二个出发。在节点0处有一个洞。在每个玩家的行动中,他们必须沿着图中与所在当前......