二维数组迷宫问题的程序
时间: 2024-08-13 19:04:58 浏览: 43
二维数组迷宫问题是一个经典的计算机科学问题,通常涉及到图形搜索算法,如深度优先搜索(DFS)或广度优先搜索(BFS),以及回溯法。在这个问题中,你需要设计一个算法来从迷宫的一个起点找到终点,或者检查是否存在解。
以下是一个简单的Python程序概述,使用深度优先搜索解决二维数组迷宫问题:
```python
# 定义一个迷宫的二维列表,0 表示空地,1 表示墙
maze = [
[0, 0, 0, 0],
[0, 1, 1, 1],
[0, 0, 0, 0],
[1, 1, 0, 0]
]
# 定义起点和终点
start = (0, 0)
end = (3, 3)
def dfs(maze, start, end):
stack = [(start, [])] # 用栈来保存节点和路径
while stack:
current, path = stack.pop()
if current == end: # 找到终点
return path + [current]
for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0)]: # 四邻方格
next_x, next_y = current + dx, current + dy
if 0 <= next_x < len(maze) and 0 <= next_y < len(maze) and maze[next_x][next_y] == 0: # 非墙壁
new_path = path + [current]
stack.append((next_x, next_y))
stack.append((new_path, [next_x, next_y]))
# 检查是否有解并打印路径
if dfs(maze, start, end):
print("Path found:", dfs(maze, start, end))
else:
print("No path found.")
```
阅读全文