HAiNIU


私信TA

用户名:1135979576

访问量:386

签 名:

等  级
排  名 43697
经  验 300
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 华东交通大学
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<iostream>
using namespace std;
using std::cin;
using std::cout;
using std::endl;
struct Ant {
    int x;//行号
    int y;//列号
    char T;//朝向
    int k;//步数
    int c = 0;//所在格子的颜色
};
Ant antBehavior(Ant a, int c, int i[][20]) {
    if (c == 0) {
        if (a.T == 'U')
        {
            i[a.x][a.y] = 1;
            a.y -= 1;
            a.k--;
            a.T = 'L';
            return a;
        }
        else if (a.T == 'D') {
            i[a.x][a.y] = 1;
            a.y += 1;
            a.k--;
            a.T = 'R';
            return a;
        }

        else if (a.T == 'L') {
            i[a.x][a.y] = 1;
            a.x += 1;
            a.k--;
            a.T = 'D';
            return a;
        }
        else if (a.T == 'R') {
            i[a.x][a.y] = 1;
            a.x -= 1;
            a.k--;
            a.T = 'U';
            return a;
        }
    }
    else if (c == 1) {
        if (a.T == 'U') {
            i[a.x][a.y] = 1;
            a.y += 1;
            a.k--;
            a.T = 'R';
            return a;

        }
        else if (a.T == 'D') {
            i[a.x][a.y] = 1;
            a.y -= 1;
            a.k--;
            a.T = 'L';
            return a;
        }
        else if (a.T == 'L') {
            i[a.x][a.y] = 1;
            a.x -= 1;
            a.k--;
            a.T = 'U';
            return a;
        }
        else if (a.T == 'R') {
            i[a.x][a.y] = 1;
            a.x += 1;
            a.k--;
            a.T = 'D';
            return a;
        }
    }
    return a;
}
int main() {
    int m, n, tep;
    Ant ant;
    int a[20][20];
    cin >> m >> n;
    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++) {

            cin >> tep;
            a[i][j] = tep;

        }
    cin >> ant.x >> ant.y >> ant.T >> ant.k;
    while (ant.k != 0) {
        ant = antBehavior(ant, a[ant.x][ant.y], a);
    }
    cout << ant.x << " " << ant.y  ;
    return 0;
}

 

0.0分

2 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区