小游戏系列算法之二贪吃蛇算法原理

来源:互联网 发布:mac远程连接云服务器 编辑:程序博客网 时间:2024/05/16 12:55

 

贪吃蛇是很常见的小游戏,大家都懂的就不介绍了。
游戏算法非常简单。先看图:

 

显然这是一个贪吃蛇,红色是蛇蓝色是食物(= =)
我们先来看看蛇的构造

 

 

可以看到,蛇其实是由1个1个正方体拼成的。每个正方体的左上角
是他们的坐标。在程序中,我们可以用一个数组表示一条蛇。数组
的每一个位置存放一个正方形的坐标
如:
snakeArr = [(10,0),(20,0),(30,0),(40,0)];
在画蛇的时候,我们只需要遍历数组,根据数组里面的坐标在画布
上画出一个一个的正方体就变成一条蛇啦。

至于蛇的行走怎么办?如下一步,蛇往上走了。

 

 

怎么样,有思路了吗?若下一步往上走,则下一个点为数组首点的横坐标不标,纵坐标+10
nextPoint = new Point(snakeArr[0].x,snakeArr[0].y+10);
接着,我们在数组的头部插入nextPoint,然后把数组尾部的数据去除。数组变成这个样子:
snakeArr = [(10,10),((10,0),(20,0),(30,0)];
是不是和数据结构里面的“队”很类似?。头位置作插入,队尾作删除。

接下里我们只要把画布清空,然后再根据蛇数组画出蛇就实现了蛇的移动啦。

关于是否吃到食物的判断也很简单,判断一下nextPoint和食物的坐标是否一样就可以了。
注意食物的生成位置就好。一般来说横坐标是随机 (画布的宽/正方形长度),然后把得到的随机数*正方形长度。 纵坐标不用我说了吧。

越界什么的,还有是否碰到自己身体什么的,我也不说了,就是简单的判断而已。

完了。


显然这是一个贪吃蛇,红色是蛇蓝色是食物(= =)
我们先来看看蛇的构造

 

原创粉丝点击