前言
提示:本文是基于easyX图形库实现的,还有部分功能可以添加,仅适合新手参考。
提示:以下是本篇文章正文内容,下面案例可供参考
一、扫雷游戏模式
在确定大小的矩形雷区中随机布置一定数量的地雷,玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。
游戏的基本操作包括左键单击和右键单击。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断。
左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。
右键单击:在判断为地雷的方块上按下右键,可以标记地雷(显示为小红旗)。重复一次或两次操作可取消标记。
二、代码实现
1.绘制地图场景
根据每一块地区的数据进行图形输出。
代码如下(示例):
void drawmap(int map[][12],IMAGE *img)
{
int i, j;
for (i = 1; i <= 10; i++)
{
for (j = 0; j <= 10; j++)
{
int x = 50 * (i - 1);//得到位置
int y = 50 * (j - 1);
if (map[i][j]>25)
{
putimage(x, y, &img[9]);//标记flag
}
else
{
switch (map[i][j])
{
case 9:
putimage(x, y, &img[11]);//输出图片雷
break;
case 10:
putimage(x, y, &img[0]);//0
break;
case 11:
putimage(x, y, &img[1]);//1
break;
case 12:
putimage(x, y, &img[2]);//2
break;
case 13:
putimage(x, y, &img[3]);//3
break;
case 14:
putimage(x, y, &img[4]);//4
break;
case 15:
putimage(x, y, &img[5]);//5
break;
case 16:
putimage(x, y, &img[