深度优先查找之迷宫问题

复制代码
 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))
复制代码

 

posted @   Avery_rainys  阅读(35)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示