Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 随机生成迷宫_Python_Maze - Fatal编程技术网

Python 随机生成迷宫

Python 随机生成迷宫,python,maze,Python,Maze,我试图创建一个随机生成的迷宫,它符合非常具体的标准: 我想它在一个二维列表,其中墙是假的,通道是真的 从x点到y点应该只有一条路线。 以下是我目前掌握的情况: def generate(height,width): maze_lst=[] theight = height*2+1 twidth = width*2+1 maze_lst = gen_base(theight, twidth) maze_lst = entrance(theight, twid

我试图创建一个随机生成的迷宫,它符合非常具体的标准: 我想它在一个二维列表,其中墙是假的,通道是真的 从x点到y点应该只有一条路线。 以下是我目前掌握的情况:

def generate(height,width):
    maze_lst=[]
    theight = height*2+1
    twidth = width*2+1
    maze_lst = gen_base(theight, twidth)
    maze_lst = entrance(theight, twidth, maze_lst)
    #maze_lst = route(theght, twidth, maze_lst)
    return maze_lst

def gen_base(height, width):
    maze_lst = []
    for i in range(height):
        maze_lst.append([])
        for j in range(width):
            if int(i/2) == i/2:
                maze_lst[i].append(False)
            elif int(j/2) == j/2:
                maze_lst[i].append(False)
            else:
                maze_lst[i].append(True)
    return maze_lst

def entrance(height, width, maze_lst):
    oside=0
    oblock=0
    for i in range(2):
        side = randint(1,4)
        if side == 1:
            block = randint(1,int(width/2))
            maze_lst[0][block*2-1] = True
        if side == 2:
            block = randint(1,int(height/2))
            maze_lst[block*2-1][width-1] = True
        if side == 3:
            block = randint(1,int(width/2))
            maze_lst[height-1][block*2-1] = True
        if side == 4:
            block = randint(1,int(height/2))
            maze_lst[block*2-1][0] = True

        if side==oside and block==oblock:
            maze_lst=generate(height,width)
        else:
            oside=side
            oblock=block
    return maze_lst

def route(height, width, maze_lst):
    ?
    return maze_lst

有人能帮忙吗?

有很多方法可以创建迷宫。Wikipedia有一个问题。

请指出您的代码有什么问题以及您希望改进的地方。