经过c语言的洗礼,我想大多数小白也希望自己也可以做出一个独立制作的小游戏吧!那就来和我一起走进扫雷小游戏的世界吧!
首先我们需要一个头文件和一个点c文件,来声明并且实现我们的代码,当然还需要一个测试文件,来检测我们的代码是否和我们所想的一样运行。例如下图这三个文件:
这样我们的第一步就完美告成了!
接下来就是我们的第二步,代码的初步实现了:
由此扫雷游戏图案我们可以看出,需要来利用一个二维数组来进行记录扫雷的数据,所以我们可以初步的设计扫雷游戏的图像模板,如下图:
我们用’0‘来表示没有雷,用数字来表示周围雷的数量,*来覆盖整个模板。(这就是扫雷的基本呈现)
显而易见外围还有一层,就是为了更好的统计一个格子中周围的地雷数量,否则空白的无法计数。
这就是一个基本的扫雷了!
最为重要的第三步,就是代码来实现了!
这就是扫雷的小菜单了!
这个则是测试文件text.c的实现了,我们利用了一个do_while循环和switch语句来简单的设计出扫雷游戏的运行,而这其中肯定最为关键的一步则为game();扫雷游戏代码则在这个函数中体现了呢。
我们游戏的开始则是初始化棋盘,中存放布置好棋盘的信息,这样我们才可以得到一个建模来进行操作更改布置雷。
上图:则是进行对棋盘的填充了。
上图:这个则是用*的打印来构造出我们的基本扫雷构图亦或者打印出代码雷区的分布等。
上图:这个则是用来最后的排查雷。
上面都是简单的讲解扫雷游戏的构造及声明,下面才是真正的代码实现上图所有声明,谨记不要眨眼哦!(小细节在最下面一定要看完哦!)
第一步呢则是将’0‘覆盖整个棋盘,再将*覆盖在’0‘上来隐藏,如下图所示:
board这个二维数组参数,我们仅需要将show和mine这两个二维数组传过去就可以得到内层’0‘和外层*了呢,这样我们的初步棋盘就完成啦!
第二步则是布置小地雷啦!这个最为激动了呢,就来看看下图吧:
而这第二部我们需要用的生成随机地雷呢,所以我们需要用到rand,另外也需要包含头文件#include<stdlib.h>和#include<time.h>来使用我们的rand,这样我们的随机地雷就出来啦!(地雷我们用’1‘来表示哦,方便我们后续代码来计算周围雷的个数哦)
第三步则是很重要的排查雷啦!此时我们需要用到一个while循环和if语句来进行一个排查雷的代码的实现了。就让我们来来看看下图啦:
首先呢我们排查雷肯定需要一个坐标来表示我们扫雷要扫的一个位点呢,所以我们就用x和y来表示咯,例如这样(x,y)的一个的坐标啦!
当然我们有四个可能:第一个是扫到雷,然后就是炸死了,第二种情况是坐标的输入超过我们棋盘范围,第三种则是排查过的坐标我们再次排查咯,最后一种则是我们扫到没有雷的一个坐标,它又需要我们计算周围雷的数目,此时我们则利用了GetMineCount的函数来计算周围雷的数目,如下图:
最后一步啦就是打印我们的扫雷模板咯,前面每一步我们都需要去利用这个代码来检查是否出错我们的代码的也运行呢,就让我们来看看吧:
这样我们的扫雷,就基本完成啦,但是呢还有一点小细节的定义呢,如下图哦:
这里的ROW和COL则是表示的行数以便我们方便修改。好啦我们的扫雷小游戏就大功告成了!
最后给大家提供text.c的测试文件咯: