智能蛇的学习心得

详情起点击这里
智能蛇设计可能是我接触到的第一个AI设计了,在之前有副俄罗斯猿制作的GIF图火爆全球:在经典的贪吃蛇游戏模式中(没有穿墙,穿墙会死),一条没有人操控的贪吃蛇吃完了整个屏幕的食物,也就是整个身体填满了整个屏幕。这副图正是AI蛇的终极版——通过算法即可实现的在随即情况下必定能填满整个屏幕,吸引这人们看完它的全程,化不可思议为现实。
这里写图片描述
好吧,估计你们是看完了这张gif图才来看我写的博客的,毕竟我目前还只是从理论上与诸君探讨智能蛇问题。
那么让我们来“自上而下地”“面向对象地”mian分析action:
(一)首先我们可以先分析贪吃蛇游戏进行过程中会遇到一些怎么的情况:

  1. 蛇头能直接无障碍地找到食物
  2. 蛇头不能直接无障碍地找到食物,但能无障碍地找到蛇尾
  3. 蛇头不能找到蛇尾也不能找到食物

对于这四种情况大家可能会觉得文字比较抽象,那么我们来图解一下:

情况1:

这里写图片描述

情况2:

这里写图片描述

情况3

这里写图片描述

想必大家现在也很清楚了情况了:
那么我们来分析情况的下一步,也就是走法:

  1. 对于情况1我们可以直接按最简单粗暴的路径来吃那个食物……
    对吧,你也是这么想的吧!
    错!!!!用简单粗暴的走法先走横坐标,再走纵坐标,证明我们的思想还停留在人为操控蛇行走的层面,没有进入到AI的思想:当我们粗暴的吃食物时,我们无视后后面走的时候我们封锁了自己下一步的路径。我们仔细认真观察一下俄罗斯大神做的AI图,有没有发现,无论多直接地可以吃到食物,蛇都会“贴着自己的身体去吃食物”,这或许是实现“满屏智能蛇”的关键一步,使智能蛇走最优路径。还有一点:我们认真观察还可以发现:蛇总是优先沿着边界走。但问题又来了:我发现了一个看不懂的小bug:在蛇吃第14个食物的时候,有没有发现蛇很神奇地在最后拐了个弯!!!很不可思议,感觉就是人在玩的时候一不小心走错了然后回去。对于这里我有个猜测:会不会是与奇偶数行列有关?不妨下去尝试一下

  2. 分析情况2:
    我们很容易知道:蛇头只要跟着自己的尾巴走就永远不可能死!于是我们就可以预想一下:在这种情况下我们可以去追随自己的尾巴,然后最终都会回到第一种情况,接着就是重复情况一。这图我实在没精力再认真分析下去了,读者们帮忙猜猜路线走法然后写在评论里吧!感激不尽!

  3. 情况3:
    这种时候必须经过情况2才可能回到情况1,那么要过多久才能回到情况2呢?我们又不能无限地跟着自己的尾巴走,只能保持情况3走下去直到遇到了情况2。
    但是我们怎样才能保证可以回到情况2呢?
    所以我们换一种思路:走到最远边界处,然后开始S形地拐回来,这样可以做到给达到情况2留下最多的“等待时间”!
    然后这里又出现了一种走法套路:(仔细观察GIF图)图中有多次蛇给自己留了两条“后路”,把框的四周都留下一条路给自己逃生!

Ai蛇的做法博主还在努力摸索,有idea的朋友请给我留言!

敬请期待Coder.@第二作品:人蛇大战

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值