C语言扫雷思路分析及代码解析(简单易懂)

1.首先我们需要知道扫雷的模板是什么样的(如图所示)

C语言扫雷思路分析及代码解析(简单易懂)_第1张图片

 由此可见,扫雷是一种类似九宫格的模板

所以我们不妨先创建两个二维数组,为什么是两个呢(如图所示)

C语言扫雷思路分析及代码解析(简单易懂)_第2张图片

 我们想要实现扫雷这个功能,需要创建两个二维数组,一个放雷,一个初始界面(玩家看到的),放雷我们是不需要给用户看的。

————————还有一点,创建二维数组的时候预留空间

C语言扫雷思路分析及代码解析(简单易懂)_第3张图片

 因为我们排查的时候是在其中一个格子的周围依次遍历,倘若我们排查1 1坐标周围雷的个数,如果不预留空间,我们就会越界访问。

2.知道模板后,如何实现呢?

为了使逻辑清晰,我们不妨将这个项目分为分为3个文件,一个头文件game.h,两个源文件

game.c,test.c。作用如下

1 test.c //⽂件中写游戏的测试逻辑    。
2 game.c //⽂件中写游戏中函数的实现等 。
3 game.h //⽂件中写游戏需要的数据类型和函数声明等 。

3.步骤分析

首先,我们要test.c中写入主函数,在主函数里调用其他函数,调用的函数作用为

1.打印菜单

在main函数中我们可以使用do...while()循环来先打印出菜单(如图所示)

C语言扫雷思路分析及代码解析(简单易懂)_第4张图片

 C语言扫雷思路分析及代码解析(简单易懂)_第5张图片

 打印完菜单后我们可以使用switch...case选择结构来选择玩不玩游戏

玩游戏的话就进入我们的game函数

C语言扫雷思路分析及代码解析(简单易懂)_第6张图片

 头文件的自定义和声明如下

C语言扫雷思路分析及代码解析(简单易懂)_第7张图片

 

2.创建数组

由上面的数组我们可以看到我们要开始创建数组了,代码如下

C语言扫雷思路分析及代码解析(简单易懂)_第8张图片

 创建完后用DisplayBoard函数打印

C语言扫雷思路分析及代码解析(简单易懂)_第9张图片

 

3.布置雷

接下来,我们要开始布置雷了,使用SetMine函数

C语言扫雷思路分析及代码解析(简单易懂)_第10张图片

 这里我们假设布置10个雷,用随机函数rand

4.排查雷

布置完后就是排查阶段了

C语言扫雷思路分析及代码解析(简单易懂)_第11张图片

 排查中我们又定义了一个函数来得到这个坐标周围的雷的个数

C语言扫雷思路分析及代码解析(简单易懂)_第12张图片

 

到此为止,扫雷的基础玩法已经实现了(并非全部功能实现)

你可能感兴趣的:(c语言,算法,开发语言)