easyx的下载:EasyX Graphics Library for C++
点击连接,然后点击下载easyx
然后根据安装指示一路下载就行:
点击下一步,会出现你安装的visual studio code 的信息
点击安装即可。
显示安装成功就可以开始用easyx的图形库了呢。
使用easyx只能在cpp环境哦,还要添加几个头文件
#include<easyx.h>
#include<graphics.h>
还有其他的头文件这里就不一一列举了。
下面是用easyx写的一个扫雷小游戏,大家可以复制试玩一下。
记得在项目,属性页里面,把字符集改成多字节字符集。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<easyx.h>
#include<graphics.h>
#include <mmsystem.h>
#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<row;i++)
{
for (j=0;j<col;j++)
{
printf("%2d ",sz[i][j]);
}
putchar('\n');
}
}
void csh(int map[][col])
{
tpjz();
int i,j;
for (i=0;i<lei;)
{
int r = rand() % 10;
int t = rand() % 10;
if (map[r][t] == 0)
{
map[r][t] = -1;
i++;
}
}
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
if (map[i][j] == -1)
{
for (int r = i - 1; r <= i + 1; r++)
{
for (int t = j - 1; t <= j + 1; t++)
{
if ((r>=0&&r<row&&t>=0&&t<col)&&map[r][t] != -1)
{
map[r][t]++;
}
}
}
}
}
}
//加密
for (int i = 0 ;i<row;i++)
{
for (int j = 0;j<col;j++)
{
map[i][j] += 20;
}
}
}
void draw(int map[][col])
{
int i, k;
for (i=0; i < row; i++)
{
for (k=0; k < col; k++)
{
if (map[i][k] >= 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<row&&j>=0&&j<col&&map[i][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有关的教程哦