1
我试图编程一个随机迷宫生成器,我试图修改代码here。我的问题是,我需要将墙壁表示为'1',并将开放式走道表示为'0',我已经玩过一次,似乎无法找到解决方案。任何帮助大量赞赏。Python代码修改
下面是完成
from random import shuffle, randrange
def make_maze(w = 16, h = 8):
vis = [[0] * w + [1] for _ in range(h)] + [[1] * (w + 1)]
ver = [["| "] * w + ['|'] for _ in range(h)] + [[]]
hor = [["+--"] * w + ['+'] for _ in range(h + 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
if xx == x: hor[max(y, yy)][x] = "+ "
if yy == y: ver[y][max(x, xx)] = " "
walk(xx, yy)
walk(randrange(w), randrange(h))
s = ""
for (a, b) in zip(hor, ver):
s += ''.join(a + ['\n'] + b + ['\n'])
return s
if __name__ == '__main__':
print(make_maze())
到目前为止您尝试了什么?乍一看,我首先修改'ver'和'hor',(如'ver = [['100'] * w + ['1']','hor = [[“111”] * w + ['1']代表范围(h + 1)]中的_ – cowbert