扫雷游戏(初阶)

扫雷游戏(初阶)规则:

随机布置10个雷  然后进行扫雷

若踩到雷就爆炸 游戏结束

否则继续 直至通关

制作一个9*9的格子

5a862ae52b80426995251a97411031f2.png036b4336571544caa7e56a95a90811ea.png

难点:

  1. 表示出来如图1所示的9*9格子-----二维数组
  2. 然后如何进行埋雷(随机) -----这时候就运用到关于随机数的知识了
  3. 如何表示如图2的数字(暗含该格子周围的8个格子的总雷数)
  4. 当格子在边界时 该格子周围并不是8个格子又该如何解决
  5. 考虑用什么去代替雷 以及什么代替无雷的空格
  6. 最后那就是用代码去实现我们的游戏啦

让我们一起慢慢前行 见证最美的日出

 

aac6a6115c4a46a59905c4368ee74d77.png

图3

但想想还是用字符’0’ ‘1’ 比较好(当然大家可以去想想有没有更好的方法 我的方法也并不一定是最简便的 这里我也只是提供一种方法)  用‘0’‘1’的话就得解决上图歧义的问题

所以我们想到用两张图 一张图用来埋雷 另一张图用来表示 排查出雷的个数(某个格子周围总雷数)

如下图:

 

1058b643bdcd4879969e6dcc94781165.png

                图4                                      图5                                                       

 

计算某个格子周围8个格子的总雷数:由于字符‘0’的ASCII码值与‘1’的ASCII码值差1   所以我们只需要用八个格子中字符的ASCII值总和减去8个‘0’的值  就能知道周围的雷数有几个了    当某个格子在边界时 为了出于方便 我们不妨也按照上面的方法 但这时就没有8个格子了 所以我们在原有的二维数组上增加四条边 让边上的每个格子的字符都为‘0’

这样就方便于计算雷数了

在排查出的雷的个数的图上我们用‘*’来表示还未被排查

 

c861c53d8a4b4be5936cd614ad7f0871.png   图6                                  图7

 

如果大家有什么不理解的地方或者有更好的方法 我们可以在评论区进行交流

我将这个扫雷游戏用多个文件进行编程

有test.c  game.c  game.h   

.c 源文件用来函数的定义

.h头文件用来函数的声明

 

d3bdcd0e703146bebf263940fee90852.png

0884ea3135494ee296217e41ce957501.png

a9cdf87040394e2eb103c56da4ce72bc.png

3b7aa3d375284eb9986403f70f328613.png

6764c52ddc34421ab3332e3c0285f792.png

 

以上代码仅仅只是扫雷游戏的初阶(由于本人目前知识有限 待以后了解更多C语言知识 会进行修改 补充 精进)

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值