C++版本扫雷

闲来无事,花了点时间写了一个简单版本的扫雷,废话不多数,开始今天的主题!!!
扫雷简单版玩法(控制台未加双缓冲):进入扫雷界面后,按下空格,光标所在位置处会经行判断,若是雷,则游戏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;
int ThunderNum = 0;  //雷数量

//Game光标
int CursonX = 0;
int CursonY = 0;

cha
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值