目录

1.扫雷游戏的多文件管理和逻辑内在

2.扫雷游戏的循环细节

3.扫雷游戏的函数声明;

4.扫雷游戏的实现;

                                                         正文

1.扫雷游戏的多文件管理和逻辑内在:

  首先我们先明确扫雷游戏的内在逻辑,当我们点击游戏区域的一个格子时,如果没被炸死,那么我们可以根据游戏所提示的数字来判断该格子周围存在几个雷。了解这一点后,我们就可以开始尝试设计扫雷游戏的代码。

  首先我们准备一个vs2022编译器,先创建3个文件,分别为一个头文件(game.h),2个源文件(minesweeper.c),(game.c),其中我们将函数声明写在头文件中,函数的具体内容写在game.c文件中,主框架写在minesweeper.c文件中,这样既便于代码的实现,也使代码看起来更加的有条理性。

  有了以上的准备后,我们正式开始代码的编写。首先,我们要思考一个问题:要实现一个9*9的扫雷游戏的话,那么棋盘的行数和列数该定义为多少?可能你或脱口而出:“9”。但是我们要知道,根据扫雷游戏的规则,定义9*9的棋盘是无法满足扫雷游戏的正常运行的,看下图:

用C语言实现控制台扫雷游戏_文件管理

  这是一个标准的99的游戏棋盘,但是当雷出现在边缘的方块中时,并且游戏代码定义的只是99的棋盘的话,就无法正常显示周围的雷数了,所以我们应该设计11*11的棋盘,如下图:

用C语言实现控制台扫雷游戏_文件管理_02

这样的定义数据更加的方便和简洁,定义2个数组,一个为内棋盘,一个为展示棋盘。

用C语言实现控制台扫雷游戏_函数_03

2.扫雷游戏的循环代码细节 

在main函数中,我们存放游戏的菜单以及使用定义的游戏函数,如下图:

用C语言实现控制台扫雷游戏_文件管理_04

用C语言实现控制台扫雷游戏_头文件_05

其次,在扫雷游戏中,雷的位置时随机出现的,根据每次游戏时间的不同,雷的位置也是随机的,对此我们很自然地就联想到了随机数

用C语言实现控制台扫雷游戏_函数_06

记住,别忘了定义使用时间函数所需的头文件time.h。

上面我们定义了2个数组,所以我们需要将它们打印出来,在这里我们使用函数封装的方式来写,如下图:

用C语言实现控制台扫雷游戏_头文件_07

用C语言实现控制台扫雷游戏_文件管理_08

至此,关于扫雷游戏的外观代码设计都大致完成,接下来,我们要实现的就是扫雷游戏的玩法核心:设置雷,找雷和坐标提示。对此,我们再依次封装3个函数:

用C语言实现控制台扫雷游戏_头文件_09

函数的具体内容:

用C语言实现控制台扫雷游戏_函数_10

用C语言实现控制台扫雷游戏_文件管理_11

用C语言实现控制台扫雷游戏_头文件_12

函数名字可以随意定义,但是自己一定要分辨出来!!!

3.函数的声明:

  上面代码中我们定义了很多函数,我们将这些函数的声明全部存放在头文件中,如下图:

用C语言实现控制台扫雷游戏_数组_13

4.扫雷游戏的实现运行:

用C语言实现控制台扫雷游戏_数组_14

用C语言实现控制台扫雷游戏_扫雷_15

大功告成!!!!!!