贪吃蛇游戏设计及算法

首先需要明确设计应该完成的功能,使用键盘的上下左右键来控制蛇的方向;随机产生食物,蛇吃到食物后,身体变长一节;设定边界,蛇撞到墙或者吃到自身的时候,游戏结束。
以下是思路:
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()实现,代码如下图贪吃蛇游戏设计及算法
将以上思路通过函数实现:贪吃蛇游戏设计及算法
将这些函数放入循环体中,即可实现贪吃蛇游戏
贪吃蛇游戏设计及算法