2017-10-04 127 views
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()) 
+0

到目前为止您尝试了什么?乍一看,我首先修改'ver'和'hor',(如'ver = [['100'] * w + ['1']','hor = [[“111”] * w + ['1']代表范围(h + 1)]中的_ – cowbert

回答

0

从它看起来像0代表开放空间的代码。 只需用0替换空格,剩下的用1替换(您可以在单引号内找到文本)。