import json
from stack_1 import stack
class find_road:
def __init__(self):
self.map=None
#读取存档里的地图
self.read_map()
#记录当前位置
self.pos_x=0
self.pos_y=0
#定义走过的路
self.road=stack()
def read_map(self):
with open('map.json','r',encoding='utf-8') as f:
self.map=json.loads(f.read())
def get_exit(self):
while self.pos_x!=18 and self.pos_y!=18:
#判断右边能走就往右走
if self.map[self.pos_x+1][self.pos_y]==' ':
#同时填上之前走的路防止重复走
self.map[self.pos_x][self.pos_y]='#'
self.pos_x+=1
#将走过的路保存到栈里面
self.road.push((self.pos_x,self.pos_y))
elif self.map[self.pos_x][self.pos_y+1]==' ':
self.map[self.pos_x][self.pos_y]='#'
self.pos_y+=1
self.road.push((self.pos_x,self.pos_y))
elif self.map[self.pos_x-1][self.pos_y]==' ':
self.map[self.pos_x][self.pos_y]='#'
self.pos_x-=1
self.road.push((self.pos_x,self.pos_y))
elif self.map[self.pos_x][self.pos_y-1]==' ':
self.map[self.pos_x][self.pos_y]='#'
self.pos_y-=1
self.road.push((self.pos_x,self.pos_y))
else:
#发现那条路也走不了就说明上一步走的错误需要退回上一步重新走
pos=self.road.pop().pos
#同时标记这条路防止下一次再走
self.map[self.pos_x][self.pos_y]='#'
self.pos_x=pos[0]
self.pos_y=pos[1]
print('找到出口')
self.road.print_all()
if __name__=='__main__':
a=find_road()
a.get_exit()
没有合适的资源?快使用搜索试试~ 我知道了~
python栈实战 迷宫寻找出口
共3个文件
py:2个
json:1个
需积分: 5 0 下载量 102 浏览量
2024-09-17
17:09:54
上传
评论
收藏 1KB ZIP 举报
温馨提示
python栈实战 迷宫寻找出口
资源推荐
资源详情
资源评论
收起资源包目录
用栈解决迷宫问题.zip (3个子文件)
迷宫寻找出口.py 2KB
stack_1.py 702B
map.json 2KB
共 3 条
- 1
资源评论
#岩王爷
- 粉丝: 71
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java语言研发的研究院专用硬件设计源码
- 基于Java和HTML的北京邮电大学大二下Java选修课作业设计源码
- 基于A+版本的大屏显示器优化AndroidStudio配置文件设计源码
- 基于Python与HTML/CSS的城市招聘信息爬取与分析设计源码
- 102种花卉分类图像数据集
- 基于Netty、Redis和Zookeeper的Java分布式系统设计源码实践
- 基于Plecs PSFB全桥原边移相+副边同步整流ZVS 输入电压375V,输出电压48V,传输功率2.5kw,可定制参数和功率
- 基于Java语言的遗传神经网络设计源码Demo
- 基于Java语言的供应链管理系统配置设计源码
- 基于Java的快捷酒店POS系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功