python迷宫问题的所有路径
时间: 2023-08-04 10:15:52 浏览: 41
以下是一个简单的 Python 程序,可以列出迷宫问题的所有路径:
```python
def find_paths(maze, x, y, path):
# 如果当前位置超出了迷宫的边界
if x < 0 or y < 0 or x >= len(maze) or y >= len(maze[0]):
return
# 如果当前位置是障碍物或已经在路径中
if maze[x][y] == 1 or (x, y) in path:
return
# 如果当前位置是终点
if maze[x][y] == 2:
print(path + [(x, y)])
return
# 尝试向上、下、左、右四个方向走
find_paths(maze, x - 1, y, path + [(x, y)])
find_paths(maze, x + 1, y, path + [(x, y)])
find_paths(maze, x, y - 1, path + [(x, y)])
find_paths(maze, x, y + 1, path + [(x, y)])
# 示例迷宫
maze = [
[0, 0, 0, 0, 0],
[0, 1, 1, 0, 0],
[0, 0, 0, 1, 0],
[1, 1, 0, 0, 0],
[2, 0, 0, 1, 0],
]
# 从起点开始搜索所有路径
find_paths(maze, 0, 0, [])
```
上述程序中,`maze` 是一个二维列表,表示迷宫的布局。其中,0 表示空地,1 表示障碍物,2 表示终点。`find_paths` 函数接受四个参数:迷宫 `maze`、当前位置的行 `x` 和列 `y`、当前路径 `path`。函数通过递归实现搜索所有路径,并将找到的路径打印出来。