1 maze = [ 2 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 3 [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], 4 [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], 5 [1, 0, 0, 0, 0, 1, 1, 0, 0, 1], 6 [1, 0, 1, 1, 1, 0, 0, 0, 0, 1], 7 [1, 0, 0, 0, 1, 0, 0, 0, 0, 1], 8 [1, 0, 1, 0, 0, 0, 1, 0, 0, 1], 9 [1, 0, 1, 1, 1, 0, 1, 1, 0, 1], 10 [1, 1, 0, 0, 0, 0, 0, 0, 0, 1], 11 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 12 ] 13 dirs = [ 14 lambda x, y: (x+1, y), 15 lambda x, y: (x, y+1), 16 lambda x, y: (x-1, y), 17 lambda x, y: (x, y-1), 18 ] 19 20 21 def maze_path(start, end): 22 stack = [] 23 stack.append(start) 24 while len(stack) != 0: 25 cur_node = stack[-1] 26 if cur_node == end: 27 print('找到迷宫出路:') 28 print(stack) 29 return True 30 for dir in dirs: 31 next_node = dir(cur_node[0], cur_node[1]) 32 if maze[next_node[0]][next_node[1]] == 0: 33 stack.append(next_node) 34 maze[next_node[0]][next_node[1]] = 2 35 break 36 else: 37 stack.pop() 38 else: 39 print('没找到') 40 return False 41 42 43 if __name__ == '__main__': 44 maze_path((1, 1), (2, 8))