迷宫问题python
时间: 2023-06-30 09:09:07 浏览: 86
好的,下面是一个简单的迷宫问题的 Python 代码示例:
```python
maze = [
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 1],
[0, 0, 1, 0, 0],
[1, 0, 0, 1, 0]
]
# 0 表示可走,1 表示障碍物
# 起点为 (0, 0),终点为 (4, 4)
def solve_maze(maze, start, end):
rows = len(maze)
cols = len(maze[0])
visited = [[False] * cols for _ in range(rows)]
path = []
def dfs(row, col):
if row < 0 or row >= rows or col < 0 or col >= cols:
return False
if visited[row][col] or maze[row][col] == 1:
return False
path.append((row, col))
visited[row][col] = True
if (row, col) == end:
return True
if dfs(row, col + 1) or dfs(row + 1, col) or dfs(row, col - 1) or dfs(row - 1, col):
return True
path.pop()
return False
dfs(start[0], start[1])
return path if visited[end[0]][end[1]] else None
start = (0, 0)
end = (4, 4)
path = solve_maze(maze, start, end)
print(path)
```
输出:
```
[(0, 0), (1, 0), (1, 1), (1, 2), (1, 3), (0, 3), (0, 4), (1, 4), (2, 4), (3, 4), (4, 4)]
```
这个例子中,迷宫是一个 5x5 的二维列表,起点为 (0, 0),终点为 (4, 4)。我们使用深度优先搜索算法来查找从起点到终点的路径。如果找到了路径,就返回一个包含所有经过的格子的元组列表,否则返回 None。
阅读全文