蚂蚁迷宫


采用有限状态机设计一个拥有智能大脑的机器人蚂蚁RoboAnt,可以自动走出迷宫。


1.S1

(1)假设我们有一只蚂蚁,蚂蚁有两只触角可以感知左边和右边(类似传感器,传递信息),暂时记为L/R,如果触角碰到迷宫墙壁则将其值设为1,反之为0。FSM的输出控制蚂蚁的行为,记F为1使蚂蚁前行,TR和TL使蚂蚁右转和左转。目的很清楚了就是让蚂蚁出去,采用的策略是右边触角靠着墙。如果蚂蚁同时可能直行或左/右转,左/右转优先,说明一下当蚂蚁触角碰到迷宫墙壁后不可以再直行咯(不撞南墙不回头?此刻转弯就行)。迷宫设计时不能包含不连接的墙也就是孤岛,不然蚂蚁可能会绕圈圈。

1.S2

假设蚂蚁最初迷失在迷宫中(ohno…I’m lost…Where is the exit…),现在明智的策略是向前直行,知道碰到迷宫的墙壁。最初的状态记为LOST, 此刻输出F。

接着输入L和R传感器至少有一个为1,即蚂蚁会碰到墙壁,状态记为RCCW,理论上有三种情况:

此时,在右手法则的条件下,为了始终保持自己右边触角靠着墙壁,蚂蚁会向左转,直到LR=00,左边右边都是0,蚂蚁不再碰到墙壁,状态记为Wall1。

蚂蚁接下来可以直行也可以右转,但是必须右转(优先级),时刻检查右边触角变化,做出相应改变。R=1,此刻状态记为Wall2,蚂蚁接下来可以直行也可以坐转,但是必须左转(优先级),此刻左边触角碰到墙壁后回到状态RCCW,右边触角碰到墙壁后继续保持状态Wall2,两边触角都未碰到墙壁后回到状态Wall1。


蚂蚁迷宫—有限状态机设计(ANT MAZE)相关推荐

  1. c语言八个方向迷宫课程设计,【精品资料最新版】C语言课程设计-迷宫游戏.doc...

    计算机技术基础课程设计 C语言 设计报告 题目:完整的二维迷宫游戏 学院:工商管理学院 专业:信息系统与信息管理 班级:050507 姓名:孙月 指导教师:张首伟 设计日期:2004年12月10日 题 ...

  2. 迷宫游戏c语言源程序,C语言迷宫游戏设计(源代码+论文)

    C语言迷宫游戏设计(源代码+论文) 如有需要请联系 QQ:958035640 摘 要 随着科技的日益发展,计算机信息知识越来越被人们所认知和使用,在当今知识爆炸的时代计算机毫不疑问成为人们常用的日常工 ...

  3. ‘SHIT’上最全有限状态机设计研究(一)-状态机介绍

    本系列主要针对有限状态机进行分析和设计,其中主要包括两部分:时钟同步状态机的分析和时钟同步状态机的设计,预计会有五篇文章进行展开,其中介绍一篇,分析和设计分别有两篇,每一部分都会有相应的实例. 文章目 ...

  4. c语言老鼠走迷宫课程设计,C语言算法之老鼠走迷宫

    1.Algorithm Gossip: 老鼠走迷官(一)说明:老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法: ...

  5. 软件技术实习项目:实验三、迷宫游戏设计

    目录 1.系统简介 1.1设计背景 1.2开发工具及环境 2.系统分析与设计 2.1设计目的 2.2功能需求 2.3系统功能代码设计 2.3.1算法说明 3.系统调试 3.1编写源程序界面 4.设计总 ...

  6. C语言通路寻找,用C语言解决迷宫问题设计与寻找通路问题.pdf

    用c语言解决迷宫设计与寻找通路问题 摘 要:本课程设计主要解决设计一个迷宫以及在给出一组入口和出口的情况下,求出一条通路的问题.在课程 设计中,程序设计语言采用VisualC++6.0,数据结构采用顺 ...

  7. 有限状态机设计实例之空调控制器(Verilog HDL语言描述)(仿真与综合)(附用Edraw(亿图)画状态转移图)

    目录 前言 空调控制器 简介 状态转移图如下: Verilog HDL语言描述 测试文件 仿真图 ISE综合 RTL Schematic Technology Schematic 前言 关于工具的使用 ...

  8. android迷宫源代码,迷宫 c++源代码(Maze c++ source code).doc

    迷宫c源代码(Mazecsourcecode) 迷宫 c++源代码(Maze c++ source code) /// / /程序名称:迷宫游戏 / /编译环境:Visual C++ 6 / 2010 ...

  9. 计算机图形学迷宫论文,三维迷宫的设计与制造

    摘要: 三维打印作为一种新兴的制造技术,由于其突破传统制造方式的局限,受到了越来越多的关注,并且有了越来越广泛的应用.在三维打印中,三维模型是基础,在打印过程中起着决定性的作用;切片计算是三维打印中对 ...

  10. OpenGL3D迷宫场景设计

    最近学习用opengl库来构建一个3D场景,以及实现场景漫游.粒子系统等效果,最终算是是做了一个3D走迷宫游戏吧.感觉最近学了好多东西,所以有必要整理整理. 一 实现效果 二 实现过程详解    1. ...

最新文章

  1. MySQL中的配置参数interactive_timeout和wait_timeout
  2. Elasticsearch-Jest 配置ES集群源码解读
  3. 关于selenium的8种元素定位
  4. VA Code编写html(1)
  5. java jtree_Java JTree
  6. vue php 加载速度,Vue加载优化,速度提高一倍。
  7. POJ 3281 (最大流+匹配+拆点)
  8. bzoj2339: [HNOI2011]卡农
  9. w ndows摄像头驱动怎么安,如何安装摄像头驱动?求安装步骤和方法!!!
  10. 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1
  11. 联想微型计算机boot,联想电脑一体机硬盘启动模式怎么设置
  12. Android端M3U8视频下载管理器----M3U8Manger
  13. 从国产浏览器更换到谷歌浏览器的心路历程
  14. Vscode中搜索字符串失败,报错“Spawn ${path}\ressources\app\node_module.asar.unpacked\vs-code-ripgrep\bin\rg.exe“
  15. 网络安全:DOM型XSS
  16. 12月17日云栖精选夜读 | 用PrettyPrinter,让Python输出更漂亮,你值得拥有...
  17. Hbuild-X使用生成签名证书失败,怎么解决 +云打包
  18. 梅尔倒频谱系数(Mel-frequency cepstrum Coefficents)
  19. 安卓开发之集成微信登录以及分享群聊,朋友圈功能。
  20. java-生成印章swing

热门文章

  1. 电动48V/60V自行车/摩托车/观光车电池检测设备,满足GB38031新国标测试
  2. 从键盘上输入10个数,求其平均值。
  3. 电子设计教程7:线性稳压电源的工作原理
  4. 瞬态电压抑制二极管选型指导,一场走心的科普之旅
  5. 第十届蓝桥杯完整版题解 (详细讲解) (新鲜出炉)
  6. 计算机软件工程专业选科要求,选考科目科普:软件工程专业要求哪些选考科目?...
  7. python - 文件打包发布流程
  8. JavaScript中sort()对数组数字项函数function(a,b)返回值为a-b即为升序排列的细解
  9. R语言学习笔记四:秩和检验
  10. 固态硬盘SSD之Flash闪存的基本概念