使用python随机生成一个九乘九大小的迷宫
时间: 2024-10-09 17:04:20 浏览: 54
要生成一个九乘九大小的迷宫,我们可以使用深度优先搜索(DFS)或广度优先搜索(BFS)算法结合随机决策来创建路径,然后用'X'表示墙壁(不可通行),' '表示空地(可通行)。这里我们使用DFS方法来简化示例:
```python
import random
# 定义迷宫的大小
maze_size = 9
# 初始化迷宫矩阵为全0,表示所有位置都是空地
maze = [[' ' for _ in range(maze_size)] for _ in range(maze_size)]
def create_maze():
visited = [[False] * maze_size for _ in range(maze_size)]
start = (0, 0)
end = (maze_size - 1, maze_size - 1)
def dfs(x, y):
visited[x][y] = True
directions = [(0, 1), (1, 0), (0, -1), (-1, 0)] # 上下左右四个方向
random.shuffle(directions) # 随机决定下一个走的方向
for dx, dy in directions:
nx, ny = x + dx, y + dy
if 0 <= nx < maze_size and 0 <= ny < maze_size and not visited[nx][ny]:
maze[nx][ny] = 'X'
dfs(nx, ny)
dfs(start[0], start[1])
maze[start[0]][start[1]] = 'S' # 设定起点
maze[end[0]][end[1]] = 'E' # 设定终点
return maze
# 创建并打印迷宫
maze = create_maze()
for row in maze:
print(' '.join(row))
```
这个脚本会随机选择一个方向进行移动,直到到达边界或已访问过的位置,形成一个随机的迷宫。`create_maze()` 函数返回一个二维列表表示迷宫,其中 `'S'` 表示起点,`'E'` 表示终点。
阅读全文
相关推荐
















