文章

7

粉丝

0

获赞

3

访问

166

头像
机器人走迷宫 题解:

#include <stdio.h>
#include <string.h>

#define MAX_SIZE 10

int w, h;
char maze[MAX_SIZE][MAX_SIZE + 1]; // 迷宫数组,加1为了存储字符串结束符'\0'
int visited[MAX_SIZE][MAX_SIZE]; // 访问标记数组

// 方向数组,分别对应上、右、下、左
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
char directions[] = "URDL";

// 查找方向字符在directions中的索引
int find_direction_index(char c) {
    for (int i = 0; i < 4; i++) {
        if (directions[i] == c) {
            return i;
        }
    }
    return -1; // 如果没有找到,返回-1
}

// 检查位置(x, y)是否在迷宫内,且不是陷阱,且未被访问过
int is_valid(int x, int y) {
    return (x >= 0 && x < w && y >= 0 && y < h && maze[x][y] != '*' && !visited[x][y]);
}

int main() {
    while (scanf("%d %d", &w, &h) != EOF) {
        getchar(); // 消耗掉输入流中的换行符

        int start_x, start_y, dir_index, steps = 0;
        //memset(visited, 0, sizeof(visited)); // 初始化访问标记数组

        // 读取迷宫地图
        for (int i = 0; i < w...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发