easyx的安装与基于easyx的C语言扫雷小游戏

easyx的下载:EasyX Graphics Library for C++

点击连接,然后点击下载easyx

easyx的安装与基于easyx的C语言扫雷小游戏_第1张图片

然后根据安装指示一路下载就行:

 easyx的安装与基于easyx的C语言扫雷小游戏_第2张图片

点击下一步,会出现你安装的visual studio code 的信息

easyx的安装与基于easyx的C语言扫雷小游戏_第3张图片 

点击安装即可。

easyx的安装与基于easyx的C语言扫雷小游戏_第4张图片

显示安装成功就可以开始用easyx的图形库了呢。 

使用easyx只能在cpp环境哦,还要添加几个头文件

#include
#include

还有其他的头文件这里就不一一列举了。

下面是用easyx写的一个扫雷小游戏,大家可以复制试玩一下。

记得在项目,属性页里面,把字符集改成多字节字符集。easyx的安装与基于easyx的C语言扫雷小游戏_第5张图片

 

#include
#include
#include
#include
#include
#include 
#define row 10
#define col 10
#define lei 10
IMAGE pt[12];

void tpjz()
{
	int i;
	
	for (i = 0; i < 12; i++)
	{
		char sz[1000];
		sprintf_s(sz,"./image/%d.jpg",i);
		loadimage(&pt[i],sz,35,35);
		putimage(i*35,0,&pt[i]);
	}
	
}
void show(int sz[][col]);
void csh(int map[][col]);
void draw(int map[][col]);
void sbcz(ExMessage*, int[][col]);
void boom(int [][col], int , int );
int pd(int [][col],int ,int );
int main(void)
{
	//数组扫雷地图 10*10
	initgraph(350,350);
	tpjz();
	srand((unsigned)time(NULL));
	int map[row][col] = { 0 };
	csh(map);
	show(map);
	while (1)
	{
		//消息处理
		ExMessage msg;
		int zhi = 0;
		while (peekmessage(&msg, EM_MOUSE))
		{
			switch (msg.message)
			{
			case WM_LBUTTONDOWN:
			case WM_RBUTTONDOWN:
			sbcz(&msg, map);
			//pd(map,msg.y/35,msg.x/35);
			if (pd(map, msg.y / 35, msg.x / 35) == -1)
			{
				zhi =MessageBox(GetHWnd(),"输了吧,不要灰心","我是大帅比",MB_OKCANCEL);
				if (zhi)
				{
					
				}
			}
			else if(pd(map, msg.y / 35, msg.x / 35)==1)
			{

				int zhi = MessageBox(GetHWnd(), "大佬,太强了", "我是大帅比", MB_OKCANCEL);
				if (zhi)
				{
					
				}
			}
			break;
			}
		}
		draw(map);
		if (zhi)
		{
			return 0;
		}
		//Sleep(16);
	}
	//getchar();
	return 0;
}

void show(int sz[][col])
{
	int i, j;
	for (i=0;i=0&&r=0&&t= 0 && map[i][k] <= 8)
			{
				putimage(k*35,i*35,&pt[map[i][k]]);
			}
			else if(map[i][k]==-1)
			{
				putimage(k * 35, i * 35, &pt[9]);
			}
			else if(map[i][k] >= 19 && map[i][k] <= 28)
			{
				putimage(k * 35, i * 35, &pt[10]);
			}
			else if (map[i][k]>=39)
			{
				putimage(k * 35, i * 35, &pt[11]);
			}
		}
	}
}

void sbcz(ExMessage *msg,int map[row][col])
{
	int c = msg->x/35;
	int r = msg->y/35;
	if (msg->message == WM_LBUTTONDOWN)
	{
		if (map[r][c]>=19&&map[r][c]<=28)
		{
			map[r][c] -= 20;
			boom(map,r,c);
		}
		
	}
	if (msg->message == WM_RBUTTONDOWN)
	{
		//能否标记
		if (map[r][c] >= 19 && map[r][c] <= 28)
		{
			map[r][c] += 20;
		}
		else
		{
			map[r][c] -= 20;
		}
	}
}

void boom(int map[row][col],int xbx,int xby)
{
	if (map[xbx][xby] == 0)
	{
		for (int i = xbx-1; i <= xbx+1; i++)
		{
			for (int j = xby-1; j <= xby+1; j++)
			{
				if (i>=0&&i=0&&j= 19&&map[i][j]<=28)
				{
					map[i][j] -= 20;
					boom(map,i,j);
				}
			}
		}
	}
}

int pd(int map[row][col],int x,int y)
{
	if (map[x][y] == -1||map[x][y] == 19)
	{
		return -1;
	}
	int i, j,cnt = 0;
	for (int i = 0; i < row; i++)
	{
		for (int j = 0; j < col; j++)
		{
			if (map[i][j] >=0&& map[i][j]< 8)
			{
				cnt++;
			}
		}
	}
	if (cnt == 90)
	{
		return 1;
	}

	return 0;
}

接下来是成品展示:

easyx的安装与基于easyx的C语言扫雷小游戏_第6张图片

easyx的安装与基于easyx的C语言扫雷小游戏_第7张图片

 如果大家感兴趣,记得点个赞哦,我会出easyx有关的教程哦

你可能感兴趣的:(小游戏,c语言)