C语语言言开开发发实实现现贪贪吃吃蛇蛇游游戏戏
本文实例为大家分享了C语言实现贪吃蛇游戏的具体代码,供大家参考,具体内容 下
1、最好用VS运行
2、用到的函数有:_kbhit _getch EasyX 图形库内一系列函数
3、蛇身与食物用矩形画的
代码 下:
#include
#include //easyx头文件
#include
#include
/********************设置各种属性**********************/
//坐标属性
typedef struct point {
int x, y;
}P INT;
//蛇
struct snake {
P INT xy[100]; //蛇的每节坐标放到数组中
int position; //方向
int num; //长度
}SNAKE;
//食物
struct food{
P INT fdxy;
int flag; //是否存在
int grade; //成绩
}FOOD;
//枚举:方向
//也可用宏 #define
enum position
{
up, down, left, right
};
/**********************对蛇的操作*****************************/
//初始化蛇
//蛇的每节为 10x10填充的矩形
void initsnake()
{
SNAKE.xy[0].x = 0;
SNAKE.xy[0].y = 0;
//数组第一个元素为蛇头
SNAKE.xy[1].x = 10;
SNAKE.xy[1].y = 0;
SNAKE.xy[2].x = 20;
SNAKE.xy[2].y = 0;
SNAKE.position = right; //方向 (随便给)
SNAKE.num = 3; //数量 (随便给)
}
//画蛇
void Drawsnake()
{
for (int i = 0; i < SNAKE.num; i++)
{
setlinecolor(BLACK);
setfillcolor(RGB(rand() % 255, rand() % 255, rand() % 255));
fillrectangle(SNAKE.xy[i].x, SNAKE.xy[i].y, SNAKE.xy[i].x + 10, SNAKE.xy[i].y + 10);
}
}
//使蛇动起来
/*
蛇头每向前动一格,其后紧随蛇头:
我们把蛇的每节坐标放到数组里 (蛇头坐标放在数组的第一个),移动时,只需使蛇头 (数组第一个元素)
改变,其后与前面交换;
*/
void Movesnake()
{
for (int i = SNAKE.num; i > 0; i--) {
SNAKE.xy[i].x = SNAKE.xy[i - 1].x;
SNAKE.xy[i].y = SNAKE.xy[i - 1].y; //使每个元素向前移动
}
switch (SNAKE.position)
{
case up:
SNAKE.xy[0].y -= 10;
break;
case down:
SNAKE.xy[0].y += 10;
break;
//上下移动 X坐标不发生改变
case left:
SNAKE.xy[0].x -= 10;
break;
case right:
SNAKE.xy[0].x += 10;
break;
//左右移动 坐标不发生改变
}
}
/******************************按键操作***************