大家好,今天为大家介绍一个简单的c语言小游戏--扫雷
在介绍之前,应该都玩过windows自带的扫雷,今天我们所研究的c语言扫雷是它的简化版
话不多说,现在开始展示
1.首先我所用的软件是visual studio ,创建文件名称,为了让代码更可观的叙述,设置了两个源文件,一个头文件如图:
1.开始打开test.c,我们先设计一下游戏的开始
这个是游戏的进入页面
命名两个数组来进行n*n的扫雷表示
这里进行一个void game()来进行不返回输出
要注意初值为‘0’;
接着
设计一个do while switch循环来进行进入游戏
如图
然后就是主函数的进行了
当然,这个时候游戏的启动还没完成,没法正常运行,只能无线的循环进入页面;
如图
这时候就要加一些东西来进行下一步
2.打开game.h头文件:
标题
这里我们是定义数组为9*9大小的扫雷(太多的话太繁琐了ps这是简易版),下面的+2是为了用数字更直观的表示棋盘的各个位置,这个后面再讲
这个时候就要引入个函数InitBorad 初始化棋盘
这里的char set 为了方便后面把棋盘的9*9的位置用其他字符表示出来
打开test.c源文件,
在上次的位置后面加入两行代码
mine 为初始化,show则是把棋盘所有位置变为*号,直观的看出变化
3.于是这个时候就要引入新的位置了,也就是game.c源文件
为了方便代码的运行,我们分为了三个部分
所以要使用其他的放的代码,我们就要使用
在test.c 和game.c文件中包含一下
然后在game.c中,我们借用InitBoard函数
来进行棋盘的初始化;
接着就要回到game.h中
引入
DisplayBoard函数,回到game.c中
为了观赏性更好,我们进行名称的展示,后面的代码就是对数组的横行与竖行的展示
后面的i,j从1开始循环是因为前面的0来表示数字了。
如图:
再回到game.h中,引入新的函数
回到game.c中
对于这里的int count=EASY_COUNT;与while循环中的rand是为了使期盼中的雷的数量以及位置的随机;所以回到game.h中,引入一个定义以及#include 函数,
只有这些函数中才包含一些特殊的代码
先不急着回到game.c中,这时候我们要完善一下test.c中的一个地方
引入srand((unsigned int)time(NULL));如此才可以使*,也就是雷的地方能够随机;
还有test .c中
来展示下面的画面。//的内容就是所有雷的位置,因为要进行游戏,所以隐藏了起来。
因此回到game.c中继续进行下一步
还没完哦,基本的框架已经快要完成了,最后就是找的雷的位置,
回到game.h中,引入
也应在test.c中引入
回到game.c中
还是用while循环来进行判断,因为我们先前的设置为row,col也就是棋盘的横竖,用if来判断你所选择的坐标是否为雷,如果不在坐标,重新输入。
除去上面的,就是进入新的if判断,如果选择的是雷,游戏结束。
如图:
被炸死后,展示所有雷的坐标,后面进行选择是否继续.
如图:
如果不是雷的话继续输入新的坐标,后面的Displayboard在你选择玩坐标之后进行新的一个棋盘的详细情况的展示。
如图:
最后的if的话则是判断是否扫雷进行完毕,如果说检测到一个雷的话会有win++。
当win++的数量等于n*n的数减去雷的数目时,游戏结束,取得胜利。
当然,要是想要像windows上的一样判断周围有几个雷的话,在void FindMine()前面输入一个判断函数:
判断可以用这种形式,也可以换成for循环形式,这里我就不展示了,你自己可以试试。
4.到了这里,所有的代码也就输入完成了,让我们看看完整的代码
game.h:
game.c:
test.c: