逃出迷宫python
时间: 2024-11-02 21:08:18 浏览: 15
逃出迷宫的问题通常涉及到路径搜索算法,如广度优先搜索(Breadth First Search, BFS)或深度优先搜索(Deep First Search, DFS),特别是当迷宫可以用二维数组或矩阵表示的时候。Python可以很好地处理这类问题,因为它的简洁性和丰富的数据结构支持。
以下是一个简单的DFS版本的迷宫逃脱程序示例:
```python
def is_valid(maze, x, y):
# 检查是否越界或遇到墙壁
return 0 <= x < len(maze) and 0 <= y < len(maze[0]) and maze[x][y] == 0
def escape_maze(maze, start_x, start_y):
visited = [[False] * len(maze[0]) for _ in range(len(maze))]
def dfs(x, y):
if (x, y) == (len(maze) - 1, len(maze[0]) - 1): # 到达终点
print("Escaped!")
return True
elif visited[x][y]: # 已访问过
return False
else:
visited[x][y] = True
# 探索相邻位置
directions = [(0, -1), (-1, 0), (0, 1), (1, 0)] # 上下左右
for dx, dy in directions:
nx, ny = x + dx, y + dy
if is_valid(maze, nx, ny) and not visited[nx][ny]:
if dfs(nx, ny): # 如果可以从新位置逃脱
return True
visited[x][y] = False # 回溯:如果都不能通,撤销这一步
return False
dfs(start_x, start_y)
# 使用示例
maze = [
[1, 0, 0, 0],
[1, 1, 0, 1],
[1, 1, 0, 0],
[1, 0, 0, 0]
] # 1代表墙,0代表空地
start_x, start_y = 0, 0
escape_maze(maze, start_x, start_y)
```
阅读全文