上一篇博客中我们简单实现了如何用C语言编写一个简易的贪吃蛇,具体实现代码可以见用C语言设计贪吃蛇 ,并提到了可以使贪吃蛇具有“智能”,使其能够自动寻找食物。下面我们来看看如何实现这一功能
设计思路如下:
定义一个函数,用于判断蛇的下一步该往哪个方向走
函数伪代码如下:
function whereGoNext(Hx,Hy,Fx,Fy) // Hx,Hy: 头的位置,Fx,Fy:食物的位置
{
用数组movable[4]={“a”,”d”,”w”,”s”} 记录可走的方向
用数组distance[4]={0,0,0,0} 记录离食物的距离
分别计算蛇头周边四个位置到食物的距离。
例如:distance[0] = |Fx – (Hx-1)| + |Fy – Hy|
如果 Hx-1,Hy 位置不是Blank,则 distance[0] = 9999
选择distance中存最小距离的下标p,注意最小距离不能是9999
返回 movable[p]
}
具体代码如下