题目链接:https://blog.csdn.net/flushhip/article/details/78267949#comments

参考:https://blog.csdn.net/ming991301630/article/details/82903059

import collections
sx,sy = 0,0
bx,by = 0,0
cnt = 0
## 得到人的位置左边sx,sy和箱子的位置坐标bx,xy
for i in range(n):for j,v in enumerate(mp[i]):if v == 'S':sx,sy = i,jcnt += 1breakelif v == '0':bx,by = i,jcnt += 1breakif cnt == 2:breakvisited = {}   #用来记录该状态是否出现过,同时记录达到该状态时一共走了多少步。出现过说明已经走过了,没有必要重复走
queue = collections.deque()  #bfs需要用双端队列实现def bfs(mp,sx,sy,bx,by):visited[(sx,sy,bx,by)] = 0queue.append([sx,sy,bx,by])dx = [1,-1,0,0]dy = [0,0,1,-1]cnt = -1while queue:sx,sy,bx,by = queue.popleft()for k in range(4):tx,ty = sx+dx[k],sy+dy[k]if 0 <= tx < n and 0 <= ty < m and mp[tx][ty] != '#' and (tx,ty,bx,by) not in visited:if (tx,ty) == (bx,by):  #判断人是否和当前箱子位置重合,如果重合,则进行推箱子ax,ay = bx+dx[k],by+dy[k]if 0 <= ax < n and 0 <= ay < m and mp[ax][ay] == 'E': #判断推了箱子之后,箱子的位置是否合理且到达终点return visited[(sx,sy,bx,by)]+1visited[(tx,ty,ax,ay)] = visited[(sx,sy,bx,by)]+1  #当前状态的步数=前一状态+1queue.append([tx,ty,ax,ay])else:  # 人和箱子的位置没有重合,则人继续走,箱子不动visited[(tx,ty,bx,by)] = visited[(sx,sy,bx,by)]+1queue.append([tx,ty,bx,by])return -1print(bfs(mp,sx,sy,bx,by))

【python】推箱子相关推荐

  1. python推箱子游戏代码_用python入门知识做推箱子游戏,若能打过第三关,则可以学会编程...

    不得不说,Python小游戏是最适合入门编程的项目,因为太简单! 无论懂或完全不懂python,这样的小游戏,你都可以直接开发出来,原因很简单: 在详细教程里,会有从零基础开始,一步一步的教你完成这个 ...

  2. python推箱子游戏顶层设计子层设计_python实现推箱子游戏

    本文实例为大家分享了python实现推箱子游戏的具体代码,供大家参考,具体内容如下 题目描述: 最短路径为: uurrDDDDuuuulldRurDDDrddLLrruLuuulldRurDDDrdL ...

  3. python推箱子代码详细讲解_Python使用tkinter模块实现推箱子游戏

    前段时间用C语言做了个字符版的推箱子,着实是比较简陋.正好最近用到了Python,然后想着用Python做一个图形界面的推箱子.这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找 ...

  4. python 推箱子实验开发报告,python实现推箱子游戏

    本文实例为大家分享了python实现推箱子游戏的具体代码,供大家参考,具体内容如下 题目描述: 最短路径为: uurrDDDDuuuulldRurDDDrddLLrruLuuulldRurDDDrdL ...

  5. python推箱子小游戏源代码_Python制作推箱子小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 游戏简介 ...

  6. python推箱子小游戏_小伙利用Python自制一个推箱子小游戏!

    原标题:小伙利用Python自制一个推箱子小游戏! 导语 月初更波python制作小游戏系列吧用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧 小伙利用Python自制一个推箱子 ...

  7. python推箱子文档_python实现推箱子游戏

    本文实例为大家分享了python实现推箱子游戏的具体代码,供大家参考,具体内容如下 题目描述: 最短路径为: uurrDDDDuuuulldRurDDDrddLLrruLuuulldRurDDDrdL ...

  8. python推箱子小游戏

    推箱子小游戏 本次小游戏学习视频:https://www.bilibili.com/video/BV1gz411B71H 相关素材:点击这里 import turtle import levelms ...

  9. python 推箱子实验开发报告_推箱子实验报告.doc

    推箱子实验报告 青岛大学软件技术学院 游戏制作实践实训 题目名称 推箱子游戏 姓 名 丁帅帅 专 业 数字媒体艺术 班 级 3班 指导教师 解新峰 2014 年 1 月 16 日 目 录 1 引言3 ...

  10. python实现推箱子

    python课程作业-推箱子 现在整理经常会用到的课程作业( python第三弹,持续更新中-) 目录 python课程作业-推箱子 简介 运行结果 系统环境 其他依赖 运行说明 实现代码 结语 简介 ...

最新文章

  1. 好久没更新了,马上回来,精彩继续
  2. 如何轻松愉快地理解条件随机场
  3. UITableView 关键操作
  4. HTTP(S)协议详解
  5. Scrapy Learning笔记(四)- Scrapy双向爬取
  6. IDEA安装class文件分析工具(binEd 和 JClassLib)
  7. context set_parameter all_req_parameters /iwfnd/if_sodata_types=gcs_iwf_context
  8. 百度家电行业报告摘录
  9. 使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试
  10. golang web服务器_使用Go制作自己的Web服务器:快速指南
  11. 不要过打折的生活,当你发现这些你有了,说明你开始成熟了
  12. docker 相关基本命令(updating...)
  13. consul配置mysql集群_consul1.6实现Mysql-Gtid主从读写分离和高可用-03
  14. POJ_3740 Easy Finding ——精确覆盖问题,DLX模版
  15. linux系统设置中文
  16. Google Earth Engine谷歌地球引擎GEE栅格数据图层可视化设置代码嵌入
  17. Java千百问_05面向对象(003)_java中抽象概念如何体现的
  18. 射频识别技术IC卡——通讯协议概述
  19. windows hotkey
  20. 有关计算机和音乐论文,计算机音乐

热门文章

  1. LEADTOOLS sdk,LEADTOOLS超过 200 种图像处理
  2. 解决Ubuntu14.04下使用foxit reader(福昕阅读器)导致CPU占用过高的问题
  3. GreenDao:3.2.0用法
  4. visio中公式太小_Word如何打分数,公式框里打竖式与斜式分数,用快捷键输入分数...
  5. Samba服务器的配置
  6. 【Easy Python】第四话:爬虫初探——玩转豆瓣二百五(下)
  7. SSLOJ 2883 烽火传递
  8. 蟒蛇语言和python_清代龙袍和蟒袍上的龙和蟒在形状上有什么区别吗
  9. 网站运营手册_脚本|自动展开全文,已支持50个网站!
  10. Alist网盘直链工具