字符游戏——并不智能的“智能蛇”

当我们已经可以制作简易版的黑框贪吃蛇游戏的时候,可能会有一种欣喜若狂的感觉,但逐渐地我们发现人手控制蛇移动好麻烦,一个不小心就手贱困死自己了,那么我们是不是可以用一种算法,让贪吃蛇自己去移动,并自动绕开障碍呢?
###算法的伪代码实现
//用数组movable[3]={“a”,”d”,”w”,”s”} 记录可走的方向
// 用数组distance[3]={0,0,0,0} 记录离食物的距离
// 分别计算蛇头周边四个位置到食物的距离。H头的位置,F食物位置
// 例如:假设输入”a” 则distance[0] = |Fx – (Hx-1)| + |Fy – Hy|
// 如果 Hx-1,Hy 位置不是Blank,则 distance[0] = 9999
// 选择distance中存最小距离的下标p,注意最小距离不能是9999
// 返回 movable[p]
}
有上面的伪代码可以看出,这个算法是通过计算蛇头到食物的距离,来判断下一步走哪里。
先判断moveable是否为1,即是否能移动。
这里写图片描述
这样就能让蛇往离食物最短的方向走去,但是唯一的缺陷就是,不能判断那里是死区,也就是说可能走着走着就会绕进自己身体里,不能走了。
这里写图片描述
智能,也许也是要靠人类一步一步研究并完善算法,才能达到的一个目标吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值