扫雷游戏中在点击空白块的时候,如果遇到了数字为空的空白块那么他会自动的帮助点击空板块周围的所有空白块。那么在自动点开的空白块中还是遇到了数字为空的空白块,他就又会帮助点击其周围的空白块。
效果如下图:
为了方便理解我将空白的方块以数字0标识。
那么可以设计递归函数。如下:
结构体如下:
struct Block {
int x; // 格子的横坐标
int y; // 格子的纵坐标
};
enum LeiStatus {
isNum = 0, // 该空白格为数字
isLei // 该空白格为雷
};
enum ShowStatus {
hideNum = 0,
showNum,
isOk, // 玩家确认这个是雷,即给这个格子标上小旗
isAsk // 不确定这个是什么,给这个格子标上问号
};
/**
* @brief The Cell 每一个格子的结构体
*/
struct Cell : Block {
LeiStatus leiStatus;
ShowStatus showStatus;
int num; // 表示每个位置的上下左右八个位置的雷的数据,如果雷的状态是
Cell()
{