2013年,某gif图在百度贴吧和微博引起了疯传。
好吧,就是下面这张。。
观察这个gif,你会发现这个智能蛇,真的很智能,不像我们写的蛇那么地智障。。
我这篇博文,就是来介绍如何才能写出不那么智障的贪吃蛇。
经过这几天的学习,通过学习网上的资料和同学的博客代码(大神就在身边),真的学到了很多东西,在我的粗略划分下,智能贪吃蛇大致可以分为三个流派。
- BFS派
- A*派
- Hamiton派
这三大派,可谓是八仙过海,各显神通,下面我将来介绍这三大门派的特点
1. BFS
首先先来介绍一下BFS派,BFS确实这种寻路问题的好方法,但是贪吃蛇最棘手的问题并不能用最朴素的BFS解决,就是蛇被蛇身或边界困住,这里我们用一点小小的trick。
首先定义四种状态。
第一种,能吃食物,吃完食物后,有路到蛇尾。
第二种,能吃食物,吃完食物后,没有路到蛇尾
第四种,不能吃食物,有路到蛇尾
第三种,不能吃食物,没有路到蛇尾
对于每种