C语言实现消消乐游戏

消消乐游戏实现

1 前置知识

1.1 开发环境的准备

  本次开发是一个消消乐的小游戏,使用的开发环境是Visual Studio 2022,且环境要安装easyx图形库。一般easyx图形库在编译器中未安装,因此需要下载该库函数然后进行手动放在C语言的库函数中。如果自己的VS 2022不能直接使用,可以按照一下方式进行安装,具体操作如下,首先下载好easyx库(是一个.exe的文件),右键将其解压,解压之后如图1.1所示,然后库函数中的头文件和lib文件导入到VS2022路径下相应include文件夹和lib文件夹中。如图1.2。
在这里插入图片描述

图1.1 解压easyx.exe后的文件目录

在这里插入图片描述
在这里插入图片描述

图1.2 复制路径
至此开发环境已经配置完成!

2 开发实现

2.1游戏的全局变量以及头文件的导入

#include<stdio.h>
#include<graphics.h> // easyx图形库的头文件
#include<mmsystem.h>
#include<time.h>
#include<math.h>
#pragma comment(lib,"winmm.lib")
#define WIN_WIDHT 485
#define WIN_HEIGHT 917
#define ROWS 8
#define COLS 8
#define BLOCK_TYPE_COUNT 7
IMAGE imgBg;//表示背景图片
IMAGE imgBloccks[BLOCK_TYPE_COUNT];//图片数组
bool isMoving;
bool isSwap;
//定义一个结构体类型,表示方块
struct block {
   
	int type;//表示方块类型,0:表示空白
	int x, y;//坐标
	int row, col;//行,列
	int match;//标志是否满足消除的条件
};

//多两行两列易于判断边界
struct block map[ROWS+2][COLS+2];
//边界值
const int off_x = 17;
const int off_y = 274;
const int block_size = 52;
int click;//单击次数,当单击次数是两次的时候就会根据一定条件交换
int posX1, posY1;
int posX2, posY2;

2.2游戏的窗口初始化

void init() {
   
	// 创建游戏窗口
	initgraph(WIN_WIDHT,WIN_HEIGHT);
	//背景图片
	loadimage(&imgBg, "./res/bg.png");
	//随机种子
	srand(time(NULL));
	// 初始化数组
	for (int i = 1; i <= ROWS; i++) {
   
		for (int j = 1; j <= COLS; j++) {
   
			map[i][j].type = 1 + rand()%7;
			map[i][j].row = i;
			map[i][j].col = j;
			map[i][j].x = off_x + (j - 1) * (block_size + 5);
			map[<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值