C语语言言实实现现贪贪吃吃蛇蛇小小游游戏戏
本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如
一一、、程程序序实实现现的的原原理理::
1、构造蛇身:定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置。这样就将移动蛇身的操作转换为移动数组的操作
,将吃食物增加蛇身体长度的操作转换为在数组后面追加元素的操作。
2、移动效果:每次移动时,将每一节蛇身 (蛇头除外)依次往前移动一节,然后擦去蛇的最后一节,最后确定蛇头的方向,再
绘制一个蛇头。这样就会显示一个移动效果。
3、身体增加效果:每次移动时候,判断蛇头是否碰到了食物,如果碰到了食物,则吃掉它,并且只进行前移蛇身和增加蛇头的
操作,不进行擦除蛇尾的操作 (可以用一个标记变量判断是否吃掉了食物,然后在擦除蛇尾那里判断是否需要擦除蛇尾),这就
会显示蛇身体增加的效果。
二二、、预预备备知知识识
1、、控控制制台台窗窗口口
控制台窗口每一个位置都有它的坐标,且坐标系如 图所示 (随箭头方向坐标逐渐增大)
2、、通通过过代代码码将将光光标标移移动动到到控控制制台台指指定定位位置置
这里用到了c语言windows编程中句柄的概念,不知道的可以百度。实在不会也没关系,可以当做一个函数模板来使用,无需做
太多了解。
#include
#include
//将光标移动到控制台的(x,y)坐标点处
void gotoxy(int x, int y)
{
COORD coo d;
coo d.X = x;
coo d.Y = y;
SetConsoleCu so Position(GetStdHandle(STD_OUTPUT_HANDLE), coo d);
}
int main()
{
gotoxy(50,15);//将光标移动到控制台的(50,15)处
p intf("Hello Wo ld\n");
system("pause");
etu n 0;
}
从运行结果可以看到,程序在指定位置输出了待输出的内容。
三三、、 程程序序框框架架
1、定义相关头文件
2、定义函数结构以及相关属性
3、完成各代码块
四四、、具具体体操操作作
1、定义相关头文件
本程序所用到的头文件如 所示
#include
#include
#include //windows编程头文件
#include
#include //控制台输入输出头文件
2、定义函数结构以及相关属性
首先需要确定游戏的边框大小
#define SNAKESIZE 100//蛇的身体最大节数
#define MAPWIDTH 118 //宽度
#define MAPHEIGHT 29//高度
其次要定义食物的坐标,以及 蛇自身的相关属性
//食物的坐标
st uct {
int x;
int y;
}food;
//蛇的相关属性
st uct {
int speed;//蛇移动的速度
int len;//蛇的长度
int x[SNAKESIZE];//组成蛇身的每一个小方块中x的坐标
int y[SNAKESIZE];//组成蛇身的每一个小方块中y的坐标
}snake;
这里蛇的身体由一节一节的小方块■组成, 将蛇的身体每一节的小方块所在的位置用一个数组来存储起来,方便以后操作。
确定游戏所用到的几个函数块。
//绘制游戏边框
void d awMap();
//随机生成食物
void c eateFood();
//按键操作