救命,不知道错在哪里

P11228 [CSP-J 2024] 地图探险

shunxinruyi @ 2024-10-30 21:58:02

#include<bits/stdc++.h>
using namespace std;
//string a[1000];
char ch[1001][1001];
int T,n,m,k,x_,y_,d,t[6]={1,1,1,1,1};
void mmm(int d,int i)
{
    int y=y_,x=x_;
    if(d==0)
    {
        while(k)
        {

            //
            y++;
            if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
            {
                return;
            }
            else
            {
                y_++;
                t[i]++;
                return;
                //k--;
            }

        }
    }
    if(d==1)
    {

        while(k)
        {
            //int y=y_,x=x_;
            //k--;
            //return;
            x++;
            if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
            {
                return;
            }
            else
            {
                x_++;
                t[i]++;
                return;
                //k--;
            }

        }
    }
    if(d==2)
    {

        while(k)
        {
            //int y=y_,x=x_;
            //k--;
            y--;
            if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
            {
                return;
            }
            else
            {
                y_--;
                t[i]++;
                return ;
                //k--;
            }

        }   
    }
    if(d==3)
    {
        while(k)
        {
            //int y=y_,x=x_;

            x--;
            if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
            {
                return;
            }
            else
            {
                x_--;
                t[i]++;
                return ;
                //k--;
            }
        }   
    }
}
int main()
{
    cin>>T;
    for(int i=1;i<=T;i++)
    {
        cin>>n>>m>>k;
        cin>>x_>>y_>>d;
        for(int j=1;j<=n;j++)
        {
            for(int l=1;l<=m;l++)
            {
                cin>>ch[i][j];
            }
        }
        for(;k;)
        {
            int a=t[i];
            mmm(d,i);
            if(t[i]==a)
            d=(d+1)%4;
            k--;

        }
    }
    for(int i=1;i<=T;i++)
    {
        cout<<t[i]<<"\n";
    }
}

|