贪吃蛇游戏设计及算法

首先须要明确设计应该完成的功能,使用键盘的上下左右键来控制蛇的方向;随机产生食物,蛇吃到食物后,身体变长一节;设定边界,蛇撞到墙或者吃到自身的时候,游戏结束。
如下是思路:
1.一张地图,四周有墙体。
2.一条蛇,由蛇身和蛇头组成。
3.食物,蛇吃到食物后身体变长,而且从新生成一个食物。
3.蛇须要移动,这是难实现的一个部分。
4.蛇撞到墙或者本身的身体就会死亡。
5.须要能用键盘控制蛇的运动方向。
如下是流程图
这里写图片描述
1.整个地图用一个二维字符数组实现。
2.用一个二维数组snake [100] [3]来描述,snake[i][0] 的值用来描述头和身体,snake[i][0] =1表示头,snake[i][0] =0表示身体,snake[i][1] 和snake[i][2] 分别描述所在的x坐标和y坐标,i表示第i节身体。
3.经过产生随机数做为食物的坐标,这个坐标不能超过地图的边界也不能和蛇的坐标同样。
4.蛇的移动,将蛇头移动到下一个坐标的时候,后面的节依次重复前一个节的移动。只须要控制蛇头的方向,设定一个变量dir=1,表示向上,1,2,3,4分别表示上下左右。若是蛇头向上走,x不变,y-1。
5.蛇头撞墙或者本身的身体,经过判断蛇头坐标是否和墙的坐标重合或者和蛇的某一节重合,当碰撞发生后,中止刷新屏幕。
6.键盘输入方向键后,重置dir的值。经过一个函数_kbhit()实现,代码以下图这里写图片描述
将以上思路经过函数实现:这里写图片描述
将这些函数放入循环体中,便可实现贪吃蛇游戏
这里写图片描述web