没有合适的资源?快使用搜索试试~ 我知道了~
首页一道python走迷宫算法题
一道python走迷宫算法题
829 浏览量
更新于2023-05-31
评论
收藏 63KB PDF 举报
主要为大家详细介绍了一道python走迷宫算法题,用一个二维数组表示一个简单的迷宫,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
资源详情
资源评论
资源推荐

一道一道python走迷宫算法题走迷宫算法题
主要为大家详细介绍了一道python走迷宫算法题,用一个二维数组表示一个简单的迷宫,具有一定的参考价
值,感兴趣的小伙伴们可以参考一下
前几天逛博客时看到了这样一道问题,感觉比较有趣,就自己思考了下方案顺便用python实现了一下。题目如下:
用一个二维数组表示一个简单的迷宫,用0表示通路,用1表示阻断,老鼠在每个点上可以移动相邻的东南西北四个点,设计
一个算法,模拟老鼠走迷宫,找到从入口到出口的一条路径。
如图所示:
先说下我的思路吧:
1、首先用一个列表source存储迷宫图,一个列表route_stack存储路线图,一个列表route_history存储走过的点,起点
(0,0),终点(4,4)。
2、老鼠在每个点都有上下左右四种方案可选,需要定义这些方案的执行方法。
3、最后做一个循环,如果当前点不是(4,4)的话就依次执行上下左右四种方法,但是有些限制,比如尝试走过的点不会再尝
试走,(0,x)点无法再执行向上的方法等等。
贴一下代码:
# _*_ coding:utf-8 _*_
route_stack = [[0,0]]
route_history = [[0,0]]
source=[[0,0,1,0,1],[1,0,0,0,1],[0,0,1,1,0],[0,1,0,0,0],[0,0,0,1,0]]
def up(location):
#横坐标为0,无法再向上走
if location[1] == 0:
return False
else:
new_location = [location[0],location[1]-1]
#已经尝试过的点不会尝试第二次
if new_location in route_history:
return False
#碰到墙不走
elif source[new_location[0]][new_location[1]] == 1:
return False
else:
route_stack.append(new_location)
route_history.append(new_location)
return True
def down(location):
if location[1] == 4:
return False
else:
new_location = [location[0],location[1]+1]
if new_location in route_history:
return False
elif source[new_location[0]][new_location[1]] == 1:
return False
else:
route_stack.append(new_location)
route_history.append(new_location)
return True
def left(location):
if location[0] == 0:
return False















weixin_38719890
- 粉丝: 4
- 资源: 994
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0