我正在尝试创建一个python迷宫生成器,但我不断得到一个IndexError:list index超出范围。有任何想法吗?我对这些东西不熟悉所以我在迷宫生成中使用rosetta code的代码。我现在不画迷宫我只想让算法立即运作。
from random import shuffle, randrange
maze_rows = 10
maze_columns = 10
maze = [[0 for rows in range(maze_rows)] for columns in range(maze_columns)]
def maze_generation(x,y):
maze[y][x] = 1
walk = [(x - 1, y), (x, y + 1), (x + 1, y), (x, y - 1)]
shuffle(walk)
for (xx, yy) in walk:
if maze[yy][xx]: continue
if xx == x:
maze[max(y,yy)][x] = 1
if yy == y:
maze[y][max(x,xx)] = 1
maze_generation(xx,yy)
maze_generation(randrange(maze_rows),randrange(maze_columns))
答案 0 :(得分:0)
您的代码与
from random import shuffle, randrange
def make_maze(w = 16, h = 8):
vis = [[0] * w + [1] for _ in range(h)] + [[1] * (w + 1)]
def walk(x, y):
vis[y][x] = 1
d = [(x - 1, y), (x, y + 1), (x + 1, y), (x, y - 1)]
shuffle(d)
for (xx, yy) in d:
if vis[yy][xx]: continue
walk(xx, yy)
walk(randrange(w), randrange(h))
return vis
print(make_maze())