简易版扫雷游戏实现

前言:小伙伴们大家好,上一次我们讲解了三子棋的游戏实现今天我们一起来学习扫雷游戏的实现。

开始的设置过程和三子棋的一致,这里就不再过多赘述了。直接上代码

设计游戏

初始化数组

我们需要在一个棋盘上布置雷,在另一个棋盘上存放雷的信息。所以在实现扫雷游戏时我们需要两个二维数组来实现,为了方便实现我们可以把这两个二二维数组设置为同样大小。假设棋盘设置为9*9大小。但是为了防止在排查雷的时候出现数组越界的情况,所以初始化时要把数组设置成11*11大小。布置雷的棋盘最开始全用字符0来初始化,而存放雷的信息的数组用字符*来初始化。用函数InitBoard函数来初始化数组,与三子棋一致数组声明放在game.h中,数组的具体实现放在game.c中。同时为了好初始化数组,把‘0’和‘*’分别传过去并统统用char set接收

打印数组

初始化之后进行打印来看看效果,打印就只需要把数组遍历一下即可。用DisplayBoard函数来实现打印

初始化为了防止数组越界用11*11的大小,但此时打印室还需要11*11吗?不需要的,我们只要9*9的大小即可,所以在传参时传过去ROW,COL即可

ctrl+f5让我们一起来看看打印的结果吧

达到了想要的效果,但似乎不太好看。此时我们可以进行小小的改进加入行号和列号

改进后的打印效果

这个就比之前的看起来更加美观

设置雷

(๑‾ ꇴ ‾๑)好哒终于来到了布置雷的部分。还记得我们刚开始设置的两个二维数组吗?char mine数组是为了布置雷,char show数组是为了存放雷的信息。这里设置雷,要用到哪个数组呢?没错,就是char mine数组用FineMine函数来进行布置雷。在开始设置雷之前我们需要先确定雷的数量,同时雷的数量又是容易更改的。所以我们需要在game.h中用define来定义雷的数量同时在game.c中用count来接收。同时利用rand函数来随机设置x,y但又要使设置坐标符合数组的行列,所以x=rand()%row+1,y=rand()%col+1。

在打印一下下看看效果吧

排查雷

排查雷的话先是在mine数组中进行排查,排查到雷就打印出布置雷的位置并提示玩家游戏失败。没有排查到雷返回雷周围八个坐标的值把排查结果放在show数组中。简单分析即可,上代码

测试结果

为了方便好测试,将EASY_COUNT的值设置为80,来看看效果吧

结束

以上就是扫雷游戏实现的所有步骤,创作不易还望老铁们点个关注,么么哒

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 35
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值