python迷宫问题的所有路径_Python解决走迷宫问题算法示例
时间: 2024-01-05 13:02:30 浏览: 158
Python解决走迷宫问题算法示例
5星 · 资源好评率100%
好的,针对您的问题,我可以为您提供以下Python代码示例,用于解决迷宫问题并找到所有路径:
```python
def find_path(maze, x, y, path):
# 获取迷宫的行数和列数
rows = len(maze)
cols = len(maze[0])
# 判断当前位置是否越界或者已经在路径中
if x < 0 or x >= rows or y < 0 or y >= cols or maze[x][y] == '#' or (x, y) in path:
return False
# 将当前位置加入路径中
path.append((x, y))
# 如果已经到达终点,则输出路径
if maze[x][y] == 'E':
print(path)
return True
# 向上、下、左、右四个方向进行递归查找
if find_path(maze, x-1, y, path):
return True
if find_path(maze, x+1, y, path):
return True
if find_path(maze, x, y-1, path):
return True
if find_path(maze, x, y+1, path):
return True
# 如果四个方向都没有找到路径,则回溯
path.pop()
return False
# 测试代码
if __name__ == '__main__':
maze = [
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'],
['#', '.', '.', '.', '#', '.', '.', '.', '.', '#'],
['#', '.', '#', '.', '#', '.', '#', '#', '.', '#'],
['#', '.', '#', '.', '.', '.', '.', '.', '.', '#'],
['#', '.', '#', '#', '#', '.', '#', '#', '.', '#'],
['#', '.', '.', '.', '#', '.', '.', '.', '.', '#'],
['#', '#', '#', '.', '#', '#', '#', '#', '.', '#'],
['#', '.', '.', '.', '.', '.', '.', '.', '.', '#'],
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
]
find_path(maze, 1, 1, [])
```
在上述代码中, `maze` 表示迷宫,其中 `#` 表示障碍物,`.` 表示可到达的空格, `S` 表示起点, `E` 表示终点。`find_path` 函数用于查找从起点到终点的所有路径,并输出这些路径。
希望这个代码示例能够解决您的问题,如果您有任何其他问题,请随时询问!
阅读全文