啦啦啦


私信TA

用户名:13537512330

访问量:659

签 名:

等  级
排  名 3315
经  验 1896
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 啦啦啦
专  业

  自我简介:


int main(){
    int m,n;
    cin>>m>>n;
    int a[m][n];
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            cin>>a[i][j];
        }
    }
    int x,y,k,fx;
    char s;
    cin>>x>>y>>s>>k;
    char cfx[4]={'U','R','D','L'};    //用于判断初始方向
    int ifx[4][2]={{-1,0},{0,1},{1,0},{0,-1}};    //每个方向的前进动作
    for(int i=0;i<4;i++) if(s==cfx[i]){fx=i;break;}    //判断初始方向
    while(k--){
        if(a[x][y]==0){//白格
            fx-=1;    //因为已经把方向根据上右下左排好序了,所以这里可以通过加减1来实现旋转
            if(fx==-1) fx=3;    //左转-1,这里实现的是上转到左,即0->3
            a[x][y]=1;    //改变格子颜色
            x=x+ifx[fx][0];    //实现列方向的动作
            y=y+ifx[fx][1];    //实现行方向的动作(这两行即实现前进一步)
        }else{//黑格,同上
            fx+=1;
            if(fx==4) fx=0;
            a[x][y]=0;
            x=x+ifx[fx][0];
            y=y+ifx[fx][1];
        }
    }
    cout<<x<<" "<<y;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区