/
项目内容:贪吃蛇
开发环境:vs2013+easyx
/
这里是一个C语言/C++项目贪吃蛇的源码。
这个源码还有待完善,希望大家共同改进。
编译软件:VS2013
游戏的初始界面是这样子的
思路:首先将程序目的大致分为几个步骤来实现:
1、显示背景图,蛇,食物
2、让蛇随着玩家键入的方向键移动
3、若蛇吃到食物则加长一节
以下是实现的代码,若有不对的地方欢迎指正。
/*
项目内容:贪吃蛇
开发环境:vs2013+easyx
*/
#include<stdio.h>
#include<conio.h>
//包含easyx图形库,可以使用给我们提供的一些函数,绘图,贴图
#include<graphics.h>
#define WIN_WIDTH 640
#define WIN_HEIGHT 480
#define MAX_SNAKE 500 //蛇的最大节数
//枚举
enum DIR //枚举蛇的方向
{
UP,
DOWN,
LEFT,
RIGHT,
};
struct Food //食物
{
int x;
int y;
DWORD color;
bool flag;//是否被吃掉,是否要重新生成食物
}food;
struct Pos
{
int x;
int y;
DWORD color;
};
struct Snake//蛇的结构体
{
int num;//当前节数
int dir;//蛇的方向
int score;//分数
int size;//蛇的宽和高
int speed;//蛇的移动速度
//表示每一节蛇的坐标 数组
struct Pos coor[MAX_SNAKE];
}snake;
void GameInit()
{
//设置随机数种子
srand(GetTickCount());
snake.num = 3;
snake.dir = RIGHT;
snake.score = 0;
snake.size = 10;
snake.speed = 10;
snake.coor[2].x = 0;
snake.coor[2].y = 0;
snake.coor[2].color = RGB(rand() % 256, rand() % 256, rand() % 256);//随机生成三个数,用三原色表示颜色
snake.coor[1].x = 10;
snake.coor[1].y =