实现思路和之前一样,加了开始界面和设置功能
#include<graphics.h>
#include<iostream>
#include<vector>
#include<string>
using namespace std;
//全局变量
MOUSEMSG msg;//全局鼠标信息变量
IMAGE mine, grid, grid_motion, grid_down, flag, flag_motion , mine_other;//所有图像变量
//单个格子大小(单位:像素),雷数常量,格子布局长宽(单位:格子),窗口宽度,窗口高度
int grid_size = 40, layout_size = 10, width = 400, height = 400;
int all_num = 0, grid_x = 0, grid_y = 0, mines_num = 10;
//格子类,边长为40像素的正方形
class Grid {
public:
bool is_mine, is_click = false, is_flag = false;
int num = 0;
IMAGE mine;
int x1, x2, y1, y2;//格子的四个角顶点的位置
int i, j;
int grids[8][2] = { 0 };
void init(bool is_mine, int x, int y, int i, int j) {
//初始化
this->is_mine = is_mine;
x1 = x; x2 = x + grid_size;
y1 = y; y2 = y + grid_size;
this->i = i; this->j = j;
//绘制
change(grid);
//判断自己的位置(grids二维数组记录周围8个格子的行和列)
if (i == 0 && j == 0)
{
//左上角
int grids[3][2] = { {0,1},{1,0},{1,1}};
for (int a = 0; a < 3; a++) {
this->grids[a][0] = grids[a][0];
this->grids[a][1] = grids[a][1];
}
}
else if (i == layout_size - 1 && j == layout_size - 1)
{
//右下角
int grids[3][2] = { {layout_size - 1,layout_size - 2},{layout_size - 2,layout_size - 1},{layout_size - 2,layout_size - 2}};
for (int a = 0; a < 3; a++) {
this->grids[a][0] = grids[a][0];
this->grids[a][1] = grids[a][1];
}
}
else if (i == 0 && j == layout_size - 1)
{
//右上角
int grids[3][2] = { {0,layout_size - 2},{1,layout_size - 1},{1,layout_size - 2}};
for (int a = 0; a < 3; a++) {
this->grids[a][0] = grids[a][0];
this->grids[a][1] = grids[a][1];
}
}
else if (i == layout_size - 1 && j == 0){
//左下角
int grids[3][2] = { {layout_size - 1,layout_size - 2},{layout_size - 2,layout_size - 2},{layout_size-2,layout_size-1} };
for (int a = 0; a < 3; a++) {
this->grids[a][0] = grids[a][0];
this->grids[a][1] = grids[a][1];
}
}
else if (i == 0 && j > 0 && j < layout_size - 1)
{
//上-边
int grids[8][2] = { {0,j - 1},{0,j + 1},{1,j - 1},{1,j},{1,j + 1},{2,j - 1},{2,j},{2,j + 1} };
for (int a = 0; a < 8; a++) {
this->grids[a][0] = grids[a][0];
this->grids[a][1] = grids[a][1];
}
}
else if (i == layout_size - 1 && j > 0 && j < layout_size - 1