本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下
一、程序实现的原理:
1、构造蛇身:定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置。这样就将移动蛇身的操作转换为移动数组的操作,将吃食物增加蛇身体长度的操作转换为在数组后面追加元素的操作。
2、移动效果:每次移动时,将每一节蛇身(蛇头除外)依次往前移动一节,然后擦去蛇的最后一节,最后确定蛇头的方向,再绘制一个蛇头。这样就会显示一个移动效果。
3、身体增加效果:每次移动时候,判断蛇头是否碰到了食物,如果碰到了食物,则吃掉它,并且只进行前移蛇身和增加蛇头的操作,不进行擦除蛇尾的操作(可以用一个标记变量判断是否吃掉了食物,然后在擦除蛇尾那里判断是否需要擦除蛇尾),这就会显示蛇身体增加的效果。
二、预备知识
1、控制台窗口
控制台窗口每一个位置都有它的坐标,且坐标系如下图所示(随箭头方向坐标逐渐增大)

2、通过代码将光标移动到控制台指定位置
这里用到了c语言windows编程中句柄的概念,不知道的可以百度。实在不会也没关系,可以当做一个函数模板来使用,无需做太多了解。
#include <stdio.h>
#include <Windows.h>
//将光标移动到控制台的(x,y)坐标点处
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main()
{
gotoxy(50,15);//将光标移动到控制台的(50,15)处
printf("Hello Worldn");
system("pause");
return 0;
}

从运行结果可以看到,程序在指定位置输出了待输出的内容。
三、 程序框架
1、定义相关头文件
2、定义函数结构以及相关属性
3、完成各代码块
四、具体操作
1、定义相关头文件
本程序所用到的头文件如下所示
#include <stdio.h> #include <stdlib.h> #include <Windows.h>//windows编程头文件 #include <time.h> #include <conio.h>//控制台输入输出头文件
2、定义函数结构以及相关属性
首先需要确定游戏的边框大小
#define SNAKESIZE 100//蛇的身体最大节数 #define MAPWIDTH 118 //宽度 #define MAPHEIGHT 29//高度
其次要定义食物的坐标,以及 蛇自身的相关属性
//食物的坐标
struct {
int x;
int y;
}food;
//蛇的相关属性
struct {
int speed;//蛇移动的速度
int len;//蛇的长度
int x[SNAKESIZE];//组成蛇身的每一个小方块中x的坐标
int y[SNAKESIZE];//组成蛇身的每一个小方块中y的坐标
}snake;










