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

猫和老鼠

时间:2023-07-21 20:34:20浏览次数:41  
标签:猫和老鼠 int xyz else -- &&

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

 

标签:猫和老鼠,int,xyz,else,--,&&
From: https://www.cnblogs.com/hanxuyao/p/17572341.html

相关文章

  • 猫和老鼠
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){intN;cin>>N;intx,y,X,Y;intm=0,c=0,b=0;stringa[10];for(intq=0;q<N;q++){stringa[10];for(intj=0;j<10;j++){......
  • 猫和老鼠
    #include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char**argv){intN,x,y,X,Y;cin>>N;for(intk=0;k<N;k++){intm=0,c=0,count=0;stringMap[10];for(intj=0;j<10;j++){cin&......
  • 【每日一题】LeetCode 913.猫和老鼠(hard题)
    题目两位玩家分别扮演猫和老鼠,在一张无向图上进行游戏,两人轮流行动。图的形式是:graph[a]是一个列表,由满足ab是图中的一条边的所有节点b组成。老鼠从节点1开始,第一个出发;猫从节点2开始,第二个出发。在节点0处有一个洞。在每个玩家的行动中,他们必须沿着图中与所在当前......