#include <graphics.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#pragma comment(lib,"Winmm.lib")
#define SQU_INTERVAL 12 //正方形的间隙
#define SQU_LONG 130 //正方形的边长
void map_welcome(); //欢迎
void map_start(); //开始设置初始值
int map_add(void); //获取剩余空格随机值
int map_cutSqu(int num); //剪切小方格背景
void map_drawSqu(); //数字添加图片上
int map_move(void); //方格移动
int map_check(void); //满格后方格检查邻近方格有相同的
void map_over(); //游戏结束
IMAGE background;
IMAGE squ;
IMAGE squAll;
IMAGE black;
int map[4][4]; //将游戏界面看作二维数组
int full_num=0; //有数字方格的个数
int space_num; //空方格的个数
int position; //随机产生数字的位置(看作一维数组)
void main()
{
srand((unsigned)time(NULL));
initgraph(580,580);
map_welcome(); //调用欢迎方法
map_start(); //调用初始化方法,二维数组值全为0
mciSendString("open audio/move.mp3 alias move",NULL,0,NULL);
mciSendString("play move from 0",NULL,0,NULL);
map_add(); //调用获取剩余空格随机值方法
map_drawSqu(); //调用数字添加到图片方法
BeginBatchDraw(); //开始批绘制
while(1)
{
if(map_move()) //调用移动方法
{
mciSendString("play move from 0",NULL,0,NULL);
map_add(); //若移动发生改变,则再调用产生随机值方法
}
putimage(0,0,&background);
map_drawSqu();
FlushBatchDraw(); //批绘制
if(!map_check()&&full_num==16)
{
map_over(); //如果满格并且检查函数返回值为0(邻近无相同数字),调用结束函数
}
Sleep(40);
}
}
void map_welcome()//欢迎
{
loadimage(NULL,"image/welcome.jpg"); //图片直接加载到屏幕
MOUSEMSG m;
while(1)
{
m
Easyx库-2048小游戏
最新推荐文章于 2024-08-17 05:56:58 发布
本文介绍了一款使用Easyx图形库编写的2048小游戏,提供了完整的源代码链接,帮助读者理解如何结合Easyx进行游戏开发。
摘要由CSDN通过智能技术生成