智闯鬼屋之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

相关推荐

  • 基于Spring MVC实现教学实验管理系统

    一,引言 1,1 设计背景 在我们的大学生活中,很容易接收到不完整的通知信息,因为学生基数庞大,信息经过分层传递,当传递到我们这里时很容易产生偏差,尤其是在实验室信息管理这方面
    2024年05月14日
    4 1 2
  • SpringBoot构建电商基础秒杀项目

    SpringBoot构建电商基础秒杀项目 项目环境:IDEA,maven,MySQL5,x 项目运行方式:从IDEA导入项目,更新maven依赖,然后在MySQL数据库中运行miaosha
    2024年05月14日
    5 1 3
  • 基于SpringBoot框架的毕业就业信息管理系统

    这是一套采用Java语言编写的毕业就业信息管理系统的源代码,基于SpringBoot框架构建,我们运用了SpringBoot和Vue技术进行开发,并在Idea或Eclipse环境下进行操作
    2024年05月23日
    13 1 2
  • Python实现的广度优先遍历搜索(BFS)算法

    广度优先遍历搜索(BFS) 1 算法介绍 2 实验代码 3 实验结果 4 实验总结 1 算法介绍 广度优先搜索算法(英语:Breadth-First-Search
    2024年05月14日
    2 1 1
  • 基于SpringBoot框架的植物健康管理系统

    这是一套采用Java语言编写的🌟🌟SpringBoot框架的植物健康管理系统源代码🌟🌟,项目开发中应用了SpringBoot和Vue技术,适用于Idea或Eclipse开发平台
    2024年05月23日
    17 1 4
  • 基于Java+SSM的毕业设计管理系统、基于JavaWeb的毕业设计管理系统

    在当今信息化时代,高校毕业设计管理系统的建设与发展日益受到重视,随着计算机技术的不断发展,基于Java+SSM框架(Spring,SpringMVC,Mybatis)的毕业设计管理系统成为了一种理想选择
    2024年05月07日
    5 1 2
  • 基于jsp+servlet+mysql的图书管理系统

    Book-management-jsp 基于jsp+servlet+mysql的图书管理系统 参考文献 基于RBAC的SSH架构下的图书管理应用研究(大连理工大学·姜楠) 高校图书管理系统的设计与实现(东北大学·黄鑫) 复旦大学数字图书馆个人图书管理系统的设计与实现(电子科技大学·陆卫国) 图书综合管理系统(吉林大学·王宇) 宁波职业技术学院图书管理系统分析与设计(云南大学·赵顺勇) 大同实验小学图书馆借还系统的设计与实现(电子科技大学·王洪宇) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 医疗卫生图书网的设计与实现(电子科技大学·张占平) 基于Web的书刊进销存系统的设计与实现(大连理工大学·王宁) 基于JSP/Servlet的三层式网上书店的研究与实现(吉林大学·郭小雪) 基于RBAC的SSH架构下的图书管理应用研究(大连理工大学·姜楠) 基于B/S架构的网上书店系统的设计与实现(电子科技大学·陈云英) 基于
    2024年05月14日
    20 1 3
  • 基于Jsp的struts框架的校园BBS论坛系统

    基于Jsp的struts框架的校园BBS论坛系统 1,绪论 这次的实训项目是开发一个校园论坛系统,而开发校园论坛系统的目的是提供一个供我校学生交流的平台
    2024年05月14日
    4 1 1
  • SSM学生公寓管理系统设计与实现、javaweb+mysql+layui

    这是一个🔥🔥SSM学生公寓管理系统设计与实现🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 学生公寓管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业设计并实现一个使用Spring+SpringMVC+Mybatis编写的宿舍管理系统
    2024年05月23日
    11 1 3
  • 基于SSM的酒店管理系统开发

    酒店管理系统升级版! 概述 本系统是大二写的小demo的升级版,主要是在学习了相关框架流行之后,以及Maven相关工具,完善了相关功能,由于初学java
    2024年05月14日
    6 1 2

发表回复

登录后才能评论