目录
1.扫雷游戏的多文件管理和逻辑内在
2.扫雷游戏的循环细节
3.扫雷游戏的函数声明;
4.扫雷游戏的实现;
正文
1.扫雷游戏的多文件管理和逻辑内在:
首先我们先明确扫雷游戏的内在逻辑,当我们点击游戏区域的一个格子时,如果没被炸死,那么我们可以根据游戏所提示的数字来判断该格子周围存在几个雷。了解这一点后,我们就可以开始尝试设计扫雷游戏的代码。
首先我们准备一个vs2022编译器,先创建3个文件,分别为一个头文件(game.h),2个源文件(minesweeper.c),(game.c),其中我们将函数声明写在头文件中,函数的具体内容写在game.c文件中,主框架写在minesweeper.c文件中,这样既便于代码的实现,也使代码看起来更加的有条理性。
有了以上的准备后,我们正式开始代码的编写。首先,我们要思考一个问题:要实现一个9*9的扫雷游戏的话,那么棋盘的行数和列数该定义为多少?可能你或脱口而出:“9”。但是我们要知道,根据扫雷游戏的规则,定义9*9的棋盘是无法满足扫雷游戏的正常运行的,看下图:
这是一个标准的99的游戏棋盘,但是当雷出现在边缘的方块中时,并且游戏代码定义的只是99的棋盘的话,就无法正常显示周围的雷数了,所以我们应该设计11*11的棋盘,如下图:
这样的定义数据更加的方便和简洁,定义2个数组,一个为内棋盘,一个为展示棋盘。
2.扫雷游戏的循环代码细节
在main函数中,我们存放游戏的菜单以及使用定义的游戏函数,如下图:
其次,在扫雷游戏中,雷的位置时随机出现的,根据每次游戏时间的不同,雷的位置也是随机的,对此我们很自然地就联想到了随机数
记住,别忘了定义使用时间函数所需的头文件time.h。
上面我们定义了2个数组,所以我们需要将它们打印出来,在这里我们使用函数封装的方式来写,如下图:
至此,关于扫雷游戏的外观代码设计都大致完成,接下来,我们要实现的就是扫雷游戏的玩法核心:设置雷,找雷和坐标提示。对此,我们再依次封装3个函数:
函数的具体内容:
函数名字可以随意定义,但是自己一定要分辨出来!!!
3.函数的声明:
上面代码中我们定义了很多函数,我们将这些函数的声明全部存放在头文件中,如下图:
4.扫雷游戏的实现运行:
大功告成!!!!!!