智闯鬼屋之Python

智闯鬼屋 问题一 总体思路: 第一步 机器人猜想鬼所有可能的位置作为知识库 第二步 输入机器人的位置和寒意值,不断更新知识库 第三步 通过知识库来做决策

本文包含相关资料包-----> 点击直达获取<-------

智闯鬼屋

问题一

总体思路: 第一步 机器人猜想鬼所有可能的位置作为知识库 第二步 输入机器人的位置和寒意值,不断更新知识库 第三步 通过知识库来做决策,前进 or 停止

具体操作步骤:

  1. 通过循环,遍历鬼的可能性,构建知识库
  2. 初始化幽灵,机器人。 这里的幽灵和机器人是通过面向对象的编程来实现的,因为幽灵和机器人的特征明 显,而且数据和函数封闭起来调用,会十分方便。具体的 Ghoust,,Robot 函数在文件 ghoust_robot.py 中

  1. 只要搜集的信息越多,知识库就越接近真实的鬼的位置。 所以我让鬼走右、上、右、上这四步来到(3,3),这样能使鬼探测的区域最大。 为了方便写,直接将这四步路放进 way 的数组中 Select_ghoust 这 个 函 数 是 用 来 更 新 知 识 库 的 , 具 体 在 文 件coolanddead_imagineghoust.py 中

\4. 之后就可以自动走了,判断下一步是否会撞鬼或者越界,如果不撞的话,就可以走

这一步,直到机器人走到[6,6]; 5. 让机器人只能向右或者向上走是符合 A 星算法最优的,A 星算法实现起来不太容易, 所以就直接让机器人只能向上或者向右走

\6. 最后写个函数打印路径即可 最终结果输出路径(图比较长,所以分了三次截图)

问题二

总体思路: 总体思路与第一步类似,只不过要多判断一下是否撞墙、是否陷入死角、是否进入老路

具体操作步骤: 1. 将图中的墙壁读入列表,为了方便调用与代码整洁,墙的初始化函数 wall()定义在 wall.py 文件中,方便调用。墙在两个房间之间,所以用 0.5 来确定墙壁的位置,比如

  1. 墙壁定义完之后,初始化鬼与幽灵,与第一问相同

  2. 仍然是使用 A 搜索的原则,即只进行向右、向上或者停止动作,(向右或者向上优先级相同)(但没有真正实现 A 搜索)

  1. 因为我的知识库是非常聪明的,不会出现被鬼卡两步的情况;因为鬼只有一种可能 吃掉机器人,最坏的情况下,机器人停留一步就知道这个鬼是什么情况了,所以停 留两步就一定是卡进了死胡同,那就让他退回去叭

\5. 然后记录所有的路径和时间耗散,排序,计算成功率,得到最短的两条路径

  1. 结果发现,这种方法成功率比较低,调试发现,这种方法容易停在沟沟角角,从而 被鬼撞死,于是加入一个判断,就是如果停一步会死,那就保命要紧,哪个方向能 走就往哪个方向跑

\7. 最终结果成功率变为了 1,但是平均路径耗散也大约提高了 1,

\8. 也许这就是要在时间与准确率之间权衡叭

问题三

问题三的总体思路:

  1. 让机器人上下左右随机走路

  2. 遍历足够多次

然后将机器人的路径与鬼行走路径比对,如果有一个路径相同,那就是一条失败的 路径 4. 将成功的路径添加进数组,然后排序 5. 得到路径耗散最低的一条路,打印出来 这个方法非常笨拙,但是有了问题一问题二的基础,这种方法是最容易实现的

具体实现方法: 1. 初始化鬼和机器人的方法和问题一问题二相同

  1. 通过,控制 i 和 j 的大小,控制计算次数,j 要大于 10,因为最短的路径就是 10

  2. 清理数据,把重复的路径、遇到鬼的路径去掉,排序得到前三短的路径(但是问题 只要求了最短的)

  1. 最后打印出路径即可,打印方法与问题一一致

总结: 1. 我将函数打包成 py 文件,在写代码时直接 import 文件,这样使主函数行数非常少, 而且更加简洁;但是打包时就要注意函数的编写,尽量让函数独立,这样可移植性 才强

  1. 问题三解决的非常笨拙,使用的是运算时间空间换取求解效果的方法,A 搜索实现 起来效果应该非常好,但是我尝试了并没有写成,所以还是采用第一版的暴力穷举 法;以后有时间将 A 搜索开发出来。

    1. 问题一与问题二解决的较好,主要是因为使用了知识库的推理。其中在编写代码过 程中,最需要注意的是深层拷贝的理解,我就曾因为这个知识没能理解,浪费了 1 个 小时的调试时间

参考文献

  • 基于.NET的桌面提醒软件的设计与实现(中国海洋大学·王学科)
  • 基于网络爬虫的电影集成搜索系统设计与实现(江西农业大学·江沛)
  • 专题资源在线视频学习网站的设计与实现(电子科技大学·余浪)
  • 基于Raspberry Pi的智能家居系统设计与开发(上海交通大学·严正清)
  • 基于隐私保护的房产数据管理平台的设计与实现(山东师范大学·刘聪)
  • 基于隐私保护的房产数据管理平台的设计与实现(山东师范大学·刘聪)
  • 成语电子词典系统的设计与实现(电子科技大学·刘健)
  • 主题爬虫关键技术研究(哈尔滨工程大学·黄正德)
  • 智能家居信息管理系统的研究(吉林大学·吴胜兵)
  • 基于Raspberry Pi的智能家居系统设计与开发(上海交通大学·严正清)
  • 基于ASP.NET的《电路分析》教学网站的设计与开发(山东师范大学·柴晓雪)
  • 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
  • 智能家居信息管理系统的研究(吉林大学·吴胜兵)
  • 基于web的旅游服务平台的设计与实现(内蒙古大学·张凡)
  • 基于Oracle 11g的仓库管理系统的设计与实现(曲阜师范大学·付海龙)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计货栈 ,原文地址:https://m.bishedaima.com/yuanma/36001.html

相关推荐

  • 基于SpringBoot框架的医疗挂号管理系统

    这是一套采用Java编程语言,基于SpringBoot框架构建的医疗预约管理系统源代码,项目中融入了Vue技术,开发工具为Idea或Eclipse,此系统适用于毕业设计或课程实践
    2024年05月23日
    2 1 1
  • 接管裸机的控制权之Python

    接管裸机的控制权 操作系统实验报告 实验题目 搭建和应用实验环境 接管裸机的控制权 实验目的 安装虚拟机软件 VMware
    2024年05月14日
    3 1 2
  • 基于SpringBoot框架的公司日常考勤系统

    这是一套采用Java语言,基于SpringBoot框架构建的日常考勤管理系统源代码,🔥🔥项目中融入了SpringBoot和Vue技术栈,适用于开发环境如Idea或Eclipse
    2024年05月23日
    3 1 1
  • 基于Java Swing实现的简易考试系统界面搭建

    基于Java Swing实现的简易考试系统界面搭建 一,任务介绍 1,1 任务描述 本任务要搭建一个考试系统界面,考试题型主要有两类:判断题和单选题
    2024年05月14日
    2 1 1
  • 高校心理教育辅导平台

    这是一个🔥🔥基于SpringBoot框架的高校心理教育辅导平台设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    4 1 1
  • 基于安卓的备忘录应用开发实现

    这是一个🔥🔥基于安卓的备忘录应用开发实现🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 安卓备忘录应用开发技术栈为安卓项目,可以作为毕业设计课程设计作业基于安卓平台实现一个日记本备忘录应用
    2024年05月23日
    1 1 1
  • 实现一个轻量级的 Web 服务器

    实现一个轻量级的 Web 服务器 实验目的 深入掌握 HTTP 协议规范,学习如何编写标准的互联网应用服务器, 实验内容 服务程序能够正确解析 HTTP 协议
    2024年05月14日
    2 1 1
  • 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统

    Blog-master 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统 参考文献 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊) 基于SSH框架的人力资源管理系统的设计与开发(电子科技大学·唐伟) 博客管理系统的设计与实现(吉林大学·赵岩) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于MVC设计模式的博客系统的设计与实现(大连理工大学·侯林) 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊) 基于SSH框架模式的博客系统的设计与实现(西北师范大学·王刚成) 基于SSH2的轻博客系统的研究与实现(吉林大学·杨雪梅) 博客管理系统的设计与实现(吉林大学·赵岩) 基于OAuth2
    2024年05月14日
    4 1 1
  • 基于SSM框架的快递管理系统源码

    这是一个🔥🔥基于SSM框架的快递管理系统源码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 快递管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业使用SSM框架(springmvc+spring+mybatis)实现一个JavaWeb快递管理系统
    2024年05月23日
    13 1 2
  • 基于JSP的房屋出租管理系统设计与实现

    基于JSP的房屋出租管理系统设计与实现 摘 要 本文研究并实现了房屋出租管理系统,主要用运了servlet技术,java 技术,jsp网页编程技术,jQuery EasyUI界面美化插件
    2024年05月14日
    20 1 1

发表回复

登录后才能评论