1

我有一个关于我正在制作的迷宫探路者的问题。我有一个深度优先的解决方案,但我想要一个广度优先的解决方案。这是深度第一:

def find_path(pathList):
    if pathList[-1] == goal:
        return pathList

    for i in adjacent_passages(labyrinth, pathList[-1]):
        if i not in pathList:
            found_path = find_path(pathList + [i])
            if found_path:
                return found_path

这就是我在广度优先问题上的“远”:

def find_path_bf(pathL):
    num = 0

    for i in range(0, len(pathL)):
        frontier[i] = adjacent_passages(labyrinth, pathL[i][-1])

    for i in range(0, len(pathL)):    
        if pathL[i][-1] == goal:
            return pathL[i]

    for i in frontier:
        if i not in pathL:
            pathL[num].append(i)
            num = num + 1

    find_path_bf(pathL)

迷宫是迷宫的矩阵,相邻通道找到相邻的正方形:)

4

0 回答 0