python递归-迷宫回溯

参考:www.bilibili.com/video/BV1E4…

实现

maze = [[1] * 7]

for i in range(6):
    temp = [1, 0, 0, 0, 0, 0, 1]
    maze.append(temp)

maze.append([1] * 7)
maze[3][1] = 1
maze[3][2] = 1
for item in maze:
    print(item)


def walk(mazeList, i, j):
    if mazeList[6][5] == 2:
        return True
    else:
        if mazeList[i][j] == 0:
            # 假设可以走通
            mazeList[i][j] = 2
            if walk(mazeList, i + 1, j):
                return True
            elif walk(mazeList, i, j + 1):
                return True
            elif walk(mazeList, i - 1, j):
                return True
            elif walk(mazeList, i, j - 1):
                return True
            else:
                mazeList[i][j] = 3
                return False
        # 1 2 3
        else:
            return False


# 从1,1开始走
walk(maze, 1, 1)
print("====================")
for item in maze:
    print(item)