从图中可以看出,整个游戏就是一个大的循环,当判断蛇的生命值为0时就跳出循环游戏结束,否则继续游戏。常用的结构是:
While (1){
……….
//游戏内容
……….
If (……)break;
//满足游戏结束的条件时跳出循环结束游戏
}
接下来就是游戏的具体内容了。
先来看看我们需要哪些变量;
蛇的身体(链表,包含了蛇每一节的坐标,和生命值);
食物(数组,两个元素,包含了食物的坐标);
蛇的运动方向(整型,共四个值);
首先,蛇的身体应该选用什么数据类型来存储呢?数组组是肯定不行的,因为数组的大小是固定的,你不知道你的蛇最终能达到多长(或许有高手能让蛇长到占满屏幕?),而且在数组的头部插入数据是很麻烦的一件事,你必须把所有的数据都往后移动一个元素才行。因此,此处我选用了链表来储存蛇的身体信息,(有的小伙伴要问了:什么是链表啊?这个请自行百度,我的个人看法是,链表就是对结构体的一种应用。话说我们学了一学期的C语言,老师也没讲链表之类的东西,不知道很正常,它应该属于数据结构这一门学科的内容吧)。
链表的一个节点应该包含哪些内容呢?
首先是蛇的坐标x和y,然后是生命值(其实只有第一个节点能用上它,你也可以去掉它,然后另外单独定义一个全局变量如life来判断蛇的生死),最后是指向下一个节点的结构体指针。
定义如下:
struct snk{//蛇身体
int x;
int y;
int life;
structsnk *link;
};
然后是食物:
int food[2];//食物,用foo
贪吃蛇游戏设计
最新推荐文章于 2024-11-08 12:18:06 发布