c语言代码:已知方格组成的如下环境地图,地图中深颜色的方格是障碍物;某机器人在该方格环境中移动,每一次移动只能移动到相邻的方格,并且不能移动到障碍物位置;它需从初始位置的方格移动到目标位置的方格,请为机器人构造从初始位置(起点)移动到目标位置(终点)的可行路径。
时间: 2024-02-22 16:55:34 浏览: 26
以下是一个简单的C语言代码示例,实现了在给定的地图中寻找从起点到终点的路径。其中,地图使用二维数组表示,0表示可以通过的位置,1表示障碍物,起点和终点用坐标表示。
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define ROWS 5
#define COLS 5
int map[ROWS][COLS] = {
{0, 0, 0, 1, 1},
{1, 0, 1, 0, 0},
{0, 0, 1, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 0, 0, 0}
};
int start_row = 0;
int start_col = 0;
int end_row = 4;
int end_col = 4;
bool find_path(int row, int col) {
if (row < 0 || col < 0 || row >= ROWS || col >= COLS) { // 超出地图范围
return false;
}
if (map[row][col] == 1) { // 障碍物
return false;
}
if (row == end_row && col == end_col) { // 到达终点
printf("(%d, %d)\n", row, col);
return true;
}
if (find_path(row, col+1) || find_path(row+1, col) || find_path(row, col-1) || find_path(row-1, col)) {
printf("(%d, %d)\n", row, col);
return true;
}
return false;
}
int main() {
if (find_path(start_row, start_col)) {
printf("Path found!\n");
} else {
printf("No path found.\n");
}
return 0;
}
```
该代码使用递归方法实现了深度优先搜索,从起点开始向四个方向搜索,直到找到终点或者无法继续前进。找到路径后,按照搜索顺序反向输出路径。该代码只是一个简单的示例,实际应用中需要考虑更多的情况,比如路径的长度、路径的唯一性等。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)