C语言+easyx写的贪吃蛇

大一时代写的小游戏,背景音乐你们就自己找一个吧,第一次发博,希望大家给点建议。




 #include <graphics.h>
#include<Windows.h>
#include<conio.h>
#include<time.h> 
#include<stdio.h>
#include<easyx.h>
#pragma comment(lib, "Winmm.lib") //音效头文件


#define WINDOW_LENGTH 640 //窗口长
#define WINDOW_WIDE 480 //串口宽
#define M_TOP 50 //地图左上顶点y坐标
#define M_LEFT 20 //地图左上顶点x坐标
#define M_BOTTOM WINDOW_WIDE-30 //地图右下顶点y坐标
#define M_RIGHT WINDOW_LENGTH-30 //地图右下顶点x坐标
#define SNAKE_UP 72 //蛇向上运动
#define SNAKE_DOWN 80 //蛇向下运动
#define SNAKE_LEFT 75 //蛇向左运动
#define SNAKE_RIGHT 77  //蛇向右运动
#define SNAKE_QUIT 27 //结束游戏ESC键
#define SNAKE_SPEED 500 //蛇运动速度
#define SNAKE_PAUSS 32 //蛇暂停运动
void backgroundmusic(); //背景音乐




typedef struct FOOD{ //定义食物结构体
int x;
int y;
int FOOD_LIVE;
}FOOD;


typedef struct NODE{ //定义蛇的节点
int x;
int y;
NODE *PRE;
NODE *NEXT;
}NODE;


typedef struct SANKE{ //定义一个蛇
NODE *TAIL;
NODE *HEAD;
int NODES; //蛇的节数
int DIRECTION; //蛇的运动方向
int SANKE_LIVE; //存活状态
}SANKE;


int score_ = 0;
FOOD f;
SANKE s;
int rank;
int t=1;
int tt;


int biteSelf(); // 判断是否咬到了自己
int snake_life(); //蛇是否存活
void gameover(); //结束界面
int eatfood(); //吃食物
void score(); //分数
void time(); //时间
void meau(); //菜单
void initGAME(); //初始化游戏
void creatWINDOW(int x, int y); //创建窗口
void closeWINDOW(); //关闭窗口
void creatmap(); //创建地图
void creatfood(); //创建食物
void drawfood(); //画食物
void drawSANKE(); //画蛇
void initSANKE(); //创建蛇
void moveSANKE(); //移动蛇
void speed(); //调整速度
void playgame(); //开始游戏
int direction(int c); //判断操作方向是否与蛇的方向相同
void Data(); //保存分数
void ESC(); //esc结束
void musicforgg(); //结束时的音乐
//void musicforeatfood(); //吃东西时的音乐
void backgroundmusic(); //背景音乐
void upgrade(); //升级模式


int main()
{
while(t)
{
backgroundmusic();
meau();
initGAME();
playgame();
closeWINDOW();
}
}


void initGAME()
{
creatWINDOW(WINDOW_LENGTH, WINDOW_WIDE);
creatmap();
creatfood();
initSANKE();
score();
f.FOOD_LIVE = 0;
}


void creatWINDOW(int x, int y){
initgraph(WINDOW_LENGTH, WINDOW_WIDE);
setbkcolor(RGB(166,135,100));
cleardevice();
}


void closeWINDOW(){
Data();
getch();
closegraph();
}


void creatmap(){
int i;
setlinecolor(YELLOW);
rectangle(M_LEFT,

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值