python迷宫问题代码
时间: 2023-10-13 18:25:26 浏览: 96
以下是一个简单的Python迷宫问题代码:
```python
maze = [
[1, 1, 1, 1, 1, 0, 1, 1, 1],
[1, 0, 0, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 1, 0, 1, 0, 1],
[0, 0, 1, 0, 1, 1, 1, 0, 1],
[1, 1, 1, 0, 0, 0, 0, 0, 1],
[1, 0, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1]
]
start_pos = (0, 0)
end_pos = (8, 8)
steps = [(0, 1), (1, 0), (0, -1), (-1, 0)]
def find_path(pos, path):
if pos == end_pos:
return path + [end_pos]
for step in steps:
new_pos = (pos[0] + step[0], pos[1] + step[1])
if (
0 <= new_pos[0] < len(maze) and
0 <= new_pos[1] < len(maze[0]) and
maze[new_pos[0]][new_pos[1]] == 1 and
new_pos not in path
):
new_path = path + [new_pos]
result = find_path(new_pos, new_path)
if result:
return result
return None
path = find_path(start_pos, [start_pos])
if path:
for pos in path:
print(pos)
else:
print("No path found")
```
这个代码使用了深度优先搜索算法来解决迷宫问题。我们首先定义了一个迷宫矩阵和起点、终点的位置,然后定义了一个步长列表来表示我们可以向上、下、左、右移动。我们通过递归函数 find_path 来找到从起点到终点的路径,递归时每次取一个可行的步长进行继续递归,直到找到终点或者所有路径都试过了为止。如果找到了路径,我们就把这条路径打印出来。如果没有找到路径,则打印 "No path found"。
阅读全文