python生成迷宫地图
时间: 2023-07-17 11:58:08 浏览: 128
生成迷宫地图的方法有很多种,以下是一种简单的实现方法:
```python
import random
def generate_maze(width, height):
# 创建一个空白的二维数组
maze = [['#'] * (width * 2 + 1) for _ in range(height * 2 + 1)]
# 初始化迷宫起点
start_x, start_y = random.randint(0, width - 1), random.randint(0, height - 1)
maze[start_y * 2 + 1][start_x * 2 + 1] = ' '
# 递归生成迷宫
generate_maze_recursive(maze, start_x, start_y)
# 将二维数组转换为字符串输出
maze_str = '\n'.join(''.join(row) for row in maze)
return maze_str
def generate_maze_recursive(maze, x, y):
directions = [(2, 0), (-2, 0), (0, 2), (0, -2)]
random.shuffle(directions)
for dx, dy in directions:
nx, ny = x + dx, y + dy
if nx >= 0 and ny >= 0 and nx < len(maze[0]) and ny < len(maze) and maze[ny][nx] == '#':
maze[y * 2 + dy][x * 2 + dx] = ' '
maze[y * 2 + dy // 2][x * 2 + dx // 2] = ' '
generate_maze_recursive(maze, nx // 2, ny // 2)
# 测试生成一个10x10的迷宫
maze = generate_maze(10, 10)
print(maze)
```
这段代码使用递归深度优先搜索算法生成迷宫地图。其中,'#'代表墙壁,' '代表通路。你可以根据需要调整迷宫的大小,修改`generate_maze`函数中的参数。运行代码后,会输出一个字符串表示的迷宫地图。
阅读全文