目录
一、游戏介绍
关于扫雷游戏,这是一个经典到不能在经典的游戏了。
相信这个游戏的规则大家都了解,在这里我就不过多介绍了。
二、游戏实现的大体思路
首先我们对整个游戏的实现进行区域划分,大体上分为三个板块。
1.game.h 板块:
这个板块由于存放各种函数接口,用于声明函数和头文件。
2. game.c 板块:
这个板块用于实现各种函数的功能。
3. test.c 板块:
这个板块用来实现整个程序的大体框架,和程序的测试。
然后根据游戏的内容进行编译,针对于扫雷游戏我们需要初始化棋盘、打印棋盘、布置雷和找雷等步骤,逐一进行完善。
三、游戏的实现
1、游戏整体框架的建立
首先需要在我们的test.c源文件下编写游戏的整体框架:
首先打印简易的菜单,输入0或1 进行开始游戏或者退出游戏
2、game()函数的实现
在我们选择开始游戏后,进入switch 选择语句中,开始执行game()函数
game()函数是我们的核心函数,里面包括棋盘的打印、布置雷、找雷等操作,由于功能较多我们可以对game()函数进行分装,分装成能实现某个功能的小函数:
这里创建两个二维数组的原因是一个用来布置雷,另一个什么都不显示,用来给玩家看。
因为后续找雷进行统计时需要判断输入位置周围的数组值,可能涉及到数组越界,所以我们要实现一个9*9大小的棋盘需要上下左右各多出一格,所以创建数组时实际需要一个11*11的数组。
这是我们布置雷前初始化得到的结果,隐藏版全都初始化成0,展示版全都初始化成 * ,具体代码如下:
3、布置雷函数的实现
对于布置雷,我们需要用时间戳来获取随机数,达到随机布置雷的效果:
在我们已经初始化好的全 0 棋盘上把获取到的位置改为 1 。
4、找雷
对于找雷,如果输入的坐标有雷,则结束游戏,输出炸死了,如果没有雷,则统计该位置周围雷的个数,并在展示的棋盘上打印周围雷的个数。
然后进行对局的判断,如果非雷位置全部排查成功则输出排雷成功,我们可以设置一个变量来控制游戏的进行,该变量的值的上限是棋盘的总格数减去雷的个数。
程序进行到这里,我们的游戏已经基本实现了,但是还有待优化,没能做到100%还原。
本篇文章就到这里了,感谢观看,快叫上你的小伙伴一起怀念童年吧!