观速讯丨小车跑迷宫,如何完成?
要制作一个能顺利走到迷宫终点,并能按最短路径回来的小车,重中之重就是寻找其最短路径的算法,迷宫情况复杂多变,多个路口交错纵横,想要完美的找出最短路径并不容易,我因此总结出一套算法,能迅速找出最短路径,并适用于大多数迷宫情形,此算法对算力要求不高,不会过多阻碍主程序的运行。
【资料图】
在小车去终点时,我们规定小车必须优先左转,其次直走,最后右转,用暴力枚举即可到达终点。在迷宫中,把每一个线段相交的地方称作结点,经过总结,共有十字结点,正T型结点,左T型结点,右T型结点四种结点,大多数传统算法要求对每一个结点进行精准分类再分别处理,而此算法能对不同类型的结点进行统一处理。
在一个结点处,小车正对且压在车身下面的那根线我们称为点a,其正对着车的左侧的线称为点b,同理,正对着车前方的直线称为点c,右侧称为点d。
把此节点称为点A(见下图),当A为1,称为无效结点,A为0,称为有效节点,考虑到有多个结点,所以A,a,b,c,d用数组表示,每个字母的初始值都为0,数组下标最大值为100。再设定一个p统计结点个数,初始值为1。此外再设置一个调头结点N,N为1则已有调头动作,否则无。小车去往终点时途经每一个结点都计算一次,在此先介绍我的结点转向算法。
在遇到结点时,若车左转,则:若d[p]为1,则a[p]加1,否则若c[p]为1,则d[p]加1,否则若b[p]为1,则c[p]加1,否则若a[p]为1,则b[p]加1。称此为左侧结点转向法。
在遇到结点时,若车直走,则:若b[p]为0,则c[p]加1,否则若c[p]为0,则d[p]加1,否则若d[p]为0,则a[p]加1。称此为前侧结点转向法。
在遇到结点时,计算方法为:(小车在调头动作完成后,N置1)当小车驶到一个任意结点时,若N为1,则判定此节点为原结点,p不变,此时转向时再根据情况同理调用结点转向法,此时p为p,完成转向算法后将N置0。
否则若N为0,若A[p-1]为2,则判定此结点为已过结点,p不变此时转向时继续根据情况调用结点转向法,此时p为p-1,完成转向算法后将A[p]置为0,为无效结点。
否则,则立即将a置1,此时结点状态为新节点,p加1,A[p]置为1,为有效节点,此时若车左侧有线,则调用左侧结点转向法,否则调用前侧结点转向法,此时p为p。
以上述算法走到终点时,已将所走过的每个结点都归纳到算法中,每个小车已走过的结点都有属于自己的值,用另一套算法逐个处理结点值即可计算出最短路径。
在小车回起点时,我们抛弃原有的一切算法,另起炉灶,此时要先把所有有效节点剥离出来,然后按从终点到起点的顺序将有效节点存到一个数组中,在这里先介绍我的第三种算法。
在遇到结点时,若此结点d为1,则左转,否则若c为1,则直走,否则若b为1,则右转,我称此为结点回溯法,
由此算法可顺利回到起点。因为在每一个结点计算一次,统一计算再运行,故而此算法对算力要求低,占用运行内存少,运算速度极短,不会影响其他程序的运行。
总结来说,由结点转向算法和结点回溯法即可完美走完迷宫。
但此算法可灵活处理至二级结点,对于处理n级结点写死即可,因此我优化了此算法,使其可灵活处理n个结点,算法虽简单,但写代码实践时,其中也有许多细节需要处理,但由于篇幅限制,至此不做过多赘述。
标签:
为您推荐
广告
- 观速讯丨小车跑迷宫,如何完成?
- 环球热资讯!保险公司赔偿人伤有哪些费用?需要哪些材料?
- 全球速讯:中国星辰 | “出差”半年 神十五乘组科学实验创多个“首次”
- 当前报道:指南金师:6.4黄金下周还会延续跌势吗?下周一开盘黄金走势分析【欢迎咨询】
- 植物大战僵尸多少钱(植物大战僵尸ds)-天天要闻
- 西安“爱心送考”再添新成员 滴滴出行发放3折爱心助考打车券
- 当前观察:麦收进度过三成 “三夏”大规模小麦机收全面展开
- 报道:iPhone11相册怎么打马赛克(苹果手机11相片怎么打马赛克)
- 生死棋局_关于生死棋局介绍
- 网际快车下载器安卓版_网际快车下载问题!!!_今头条
- 昭仪秘史未删减txt_昭仪秘史-微动态
- 分数加减法思维导图(分数加减法)-世界观天下
- 可乐加盐能喝吗(可乐加盐)|天天微头条
- 甲马版画_甲马是什么_讯息
- 当前最新:06年世界杯主题曲歌名_06年世界杯主题曲
- 天天时讯:还有人记得7年前轰动爷孙脸?当年的17岁少女,如今已经失去单纯
- 四库一平台有什么用_四库一平台指的是什么 消息
- oppo r9s手机锁屏密码忘了怎么解锁_oppo r9s锁屏密码怎么清除
- 世界新动态:母亲坠亡后,被撞小学生父亲也“跟着跳楼”?知情人发声
- 东汉说唱俑“复活”:传递千余年的喜乐
广告
- 支付宝(余额宝) 世界热闻
- 微速讯:《逍遥情缘》手游来天音寺上柱香 保证你下半年的好运气!
- 世界速讯:苹果头显曝光/三星S23成本公开
- 当前看点!LG Innotek推出新型车灯模块Nexlide-M
- 6月2日山西地区煤焦油市场价格上涨_环球报道
- 世界热点评!安徽野外放生200条人工繁育扬子鳄
- 海思科5000万于西藏投资设立医药新公司 环球短讯
- 滕哈格享受曼城风格,称决赛曼联有胜机!格雷泽与利物浦球迷合影-每日热文
- 马云:在千岛湖钓鱼,手里提的大头鱼起码6斤以上,笑得合不拢嘴|全球观焦点
- 国脉文化:天翼爱动漫文化传媒有限公司拥有网络出版许可资质证书
- 从人口资源大国迈向人力资本强国(人口高质量发展支撑中国式现代化⑦)
- 晨会纪要
- 当前热议!热评丨“贴身”“俯身”“转身” 建设对儿童友好的城市
- 关注 | 欧联杯决赛主裁泰勒机场遭球迷围攻
- 【焦点热闻】【物流618】韵达快递在上海200多家网点开启“预售极速达”
- 当前聚焦:游族网络6月2日快速上涨
- 河北雄安新区新一代配电物联感知云平台上线-世界今亮点
- 公交车司机突然下车 乘客们却为他鼓起掌(温情网事)
- 全球微头条丨通知存款与协定存款利率调整后续:国有大行两类存款利率普遍低于中小行
- 江苏康力源体育科技股份有限公司 首次公开发行股票并在创业板上市投资风险特别公告