智能蛇的简介

再上一篇文章中,我们介绍了字符版贪吃蛇

但这种贪吃蛇游戏性太低,不方便操作,不美观,也不太有意思。

所以在本文中我们将介绍一下智能蛇。

智能蛇之所以智能,1 在于蛇的移动是自动的,他不需要人工的输入键,实现清屏。

2,蛇的移动总是能吃到蛇且不会吃到自己,撞到墙,从而提高了游戏的持续性。

首先看下网上得到的效果图:

智能蛇的简介_第1张图片


1.为了实现光标的重置,清屏,需要下linux下实现,即需要esc序列实现。

对于 VT100 终端, printf “\033[2J”即可 就实现了清屏。

2.智能蛇的算法:

最简单的方法是每次都横扫一行或者一列,这样子可以不吃到自己或者撞到墙,但是这样子太慢,也不算智能。

另一种算法是:

先判断是否可以吃到食物

如果不能吃到食物,则让蛇头跟着蛇尾巴走,虽然绕了远路,但是可以保证不吃到自己,这样子跟着尾巴直到吃食物。

        如果能吃到食物,在判断会不会吃到自己的尾巴,如果会的话,则解决方法如上,还是让蛇跟着蛇尾巴走,直到吃到食物。

如果可以吃食物,不会吃到自己的尾巴,就直接去吃食物即可,而且可以依靠最短路径过去,则大大缩短时间,提高了效率。

其实,在追着自己尾巴走的时候,常常会遇到走哪个方向去找尾巴,其中最保险的是走离食物最远的方向去吃食物,则可以有足够大的空间去吃食物。

近年来ai变得越来越火,如阿法狗等,贪吃蛇的算法也成为津津乐道的事情。

需要我们多多尝试,多多阅读才能提高能力。





你可能感兴趣的:(智能蛇的简介)