Python迷宫代码无越界情况
时间: 2024-06-01 13:06:06 浏览: 90
Python中实现迷宫无越界情况的代码通常采用二维数组表示迷宫,然后通过递归算法进行搜索。在搜索的过程中,需要判断当前位置是否在迷宫的边界之内,以避免越界的情况。以下是一个简单的示例代码:
```
def search(x, y, maze, visited):
if maze[x][y] == 'G': # 到达终点
return True
visited[x][y] = True # 标记已经访问过该位置
dx = [0, 1, 0, -1] # 上下左右四个方向
dy = [1, 0, -1, 0]
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if nx >= 0 and nx < len(maze) and ny >= 0 and ny < len(maze) and not visited[nx][ny] and maze[nx][ny] != '#':
# 判断下一个位置是否在迷宫内,是否访问过,是否是障碍物
if search(nx, ny, maze, visited):
return True
return False
# 示例用法
maze = [
['#', '#', '#', '#', '#'],
['#', '.', '.', '.', '#'],
['#', '.', '#', '.', '#'],
['#', '.', '.', '.', '#'],
['#', '#', '#', '#', '#']
]
visited = [[False] * len(maze) for _ in range(len(maze))] # 初始化visited数组
if search(1, 1, maze, visited):
print('找到了一条通路')
else:
print('没有通路')
```
在上面的代码中,`maze`表示迷宫的二维数组,`visited`表示是否访问过每个位置。`search`函数采用递归算法进行搜索,每次搜索时判断下一个位置是否在迷宫内、是否访问过、是否是障碍物,以避免越界的情况。如果找到了通路,则返回True;否则返回False。
阅读全文