很烦,不知道哪里有问题
查看原帖
很烦,不知道哪里有问题
1150267
SH127楼主2024/8/6 21:50
#include<stdio.h>
#include<string.h>
int main()
{
    char map[10][10];
    int cx=0,cy=0,fx=0,fy=0;
    for(int i=0;i<10;i++){
        fgets(map[i],100,stdin);
        map[i][strcspn(map[i],"\n")]=0;
    }

    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            if(map[i][j]=='C'){
                cx=j;
                cy=i;
            }
            if(map[i][j]=='F'){
                fx=j;
                fy=i;
            }
        }
    }

    int cnt=0,cp=0,fp=0;//cp,fp->direct
    while(1){
        if(cp%4==0){
            if(map[cy-1][cx]=='*'||cy-1<0){
                cp++;
            }else{
                cy--;
            }
        }

        if(fp%4==0){
            if(map[fy-1][fx]=='*'||fy-1<0){
                fp++;
            }else{
                fy--;
            }
        }

        if(cp%4==1){
            if(map[cy][cx+1]=='*'||cx+1>9){
                cp++;
            }else{
                cx++;
            }
        }

        if(fp%4==1){
            if(map[fy][fx+1]=='*'||fx+1>9){
                fp++;
            }else{
                fx++;
            }
        }

        if(cp%4==2){
            if(map[cy+1][cx]=='*'||cy+1>9){
                cp++;
            }else{
                cy++;
            }
        }

        if(fp%4==2){
            if(map[fy+1][fx]=='*'||fy+1>9){
                fp++;
            }else{
                fy++;
            }
        }

        if(cp%4==3){
            if(map[cy][cx-1]=='*'||cx-1<0){
                cp++;
            }else{
                cx--;
            }
        }

        if(fp%4==3){
            if(map[fy][fx-1]=='*'||fx-1<0){
                fp++;
            }else{
                fx--;
            }
        }
        cnt++;
        if(cx==fx&&fy==cy) break;
        
    }
    printf("%d",cnt);
    
    return 0;

}
2024/8/6 21:50
加载中...