室友说你怎么才学到数组,然后我用C语言做了个扫雷(递归展开+难度选择+优化打印)

扫雷

创作不易,还请观众老爷耐心看完儿! 

目录

扫雷

1.扫雷框架

2.初始化棋盘

3.打印棋盘

格式1:

格式2:

4.布置雷

5.排查雷

5.1排查雷的功能

5.2递归展开功能bool_mine

5.3计算该位置的雷的个数

6.扫雷的全部代码

7.作者试玩环节



1.扫雷框架

2.初始化棋盘

        这是用户看到的棋盘,9*9大小,需要自己去排查雷

为了程序员更好地去控制扫雷,我们需要两个数组

  1. 程序员看的雷区数组 -- 里面存放着雷的位置 -- 11*11大小
  2. 用户看的展示数组 -- 全是*号,需要用户去排查 -- 11*11大小

使这两个数组一样大的原因:是为了使我们后面设计的接口函数更加兼容,即使展示的数组本质是11*11大小,但是我们打印的时候打印9*9就可以了

        为了可以提高代码可维护性和兼容性,我们将数组的行数和列数,使用来替换


#define ROWS 11
#define COLS 11


#define ROW 9
#define COL 9
void InitBoard(char board[ROWS][COLS], int rows, int cols,char set)
{
	for (int i = 0; i < rows; ++i)
	{
		for (int j = 0; j < cols; ++j)
		{
			board[i][j] = set;
		}
	}
}

        我们将如果初始化的内容以字符的形式作为参数传进去,上述代码就可以很好地解决了兼容性,这一个函数可以解决雷区棋盘和展示用户的棋盘的初始化


3.打印棋盘

         打印棋盘大家可以充分发挥自己的艺术细胞,根据自己的喜好去设置棋盘的打印格式。下面博主提供两种。

格式1:


                
  • 84
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 118
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值