闲来无事,花了点时间写了一个简单版本的扫雷,废话不多数,开始今天的主题!!!
扫雷简单版玩法(控制台未加双缓冲):进入扫雷界面后,按下空格,光标所在位置处会经行判断,若是雷,则游戏over,若是空白区域则展开地图,若是带有数字标志的则仅展示改地图块,直至剩下雷区
看一下效果
难点:
1.如何展示
2.如何初始化地图块(根据难度选择):雷位置安放以及周围地图块的数字大小设置
3.如何展开空白区域,即扩散
下面一步步来放代码
首先先了解一下本次使用的游戏框架
void main()
{
while (isRun)
{
system("cls");
if (status == 0) //开始场景
{
}
else if (status == 1) //难度选择场景
{
//这里会经行游戏初始化
}
else if (status == 2) //游戏运行场景
{
GameRun()
{
//游戏绘制
//游戏逻辑
}
}
else if (status == 3) //win界面
{
}
else if (status == 4) //failed界面
{
}
else if (status == 5) //结束界面
{
//这里经行游戏结束的处理
}
}
system("pause");
}
一、如何展示
这里我们会用到一个展示地图DisplayMap和一个游戏地图Map,展示的过程其实就是逐步将Map的内容展示到界面上
看一下我们的相关全局变量
int MapW = 0;
int MapH = 0;
int MapS = 0;
//0空白;
//1代表该位置附近有1颗雷,最多有8颗
//9代表该位置有雷
//-9代表该位置的雷被排除了(这里我没扩展了,可自行选择)
char* Map; //地图动态数组
char* DisplayMap;//屏幕展示出来的地图
int* ThunderIndex; //雷位置索引动态数组
int difficult = 0;
bool isRun = true;
in