新手小白尝试——扫雷游戏(C语言)

   首先要去分析游戏,对于扫雷游戏的构建,我们要思考以下几个问题,一个是首先我要有个期盼,那么我如何用函数来实现棋盘的初始化呢?如何来展现棋盘?如何来设置雷点?如何来寻找雷点?以及,如何来计算此坐标周围有多少个雷点?这些都是我们要去思考的,而我上面所写的思考的先后也是反应了我们的程序进行的逻辑顺序。

  假设,我一开始设置的棋盘的大小为9*9,而且只有一个棋盘,对于不是雷点的地方,就设置为'1',是雷点的地方就设置为'0'。此时,就会出现两个问题

第一个问题:其会有超出的判断地方,如果是这样的话,每次都要其判断,会很麻烦,倒不如直接扩大,把这个9*9的棋盘扩大到11*11(即上下左右都多了一行),但是,其有效的数据值仍然是保存在9*9的这个我们所需要的棋盘中。

第二个问题:由于我们要实现的一个功能是其在未踩到雷的那个坐标的附近有多少个雷是要被预测与告知出来的,如果我所判断的那个3*3的区域内,其刚好就只有一个雷点,那么就会和表示是雷点的1,产生影响,可能会导致计算机误读,那么,为了防止此类影响,我们可以把它分为两个数组,分别来实现不同的功能,一个为扫雷的数组,即里面布置好雷点,另一个为找雷点的数组,用来看是否踩到雷点与计算此坐标附近有多少个雷电。

那么,来看看我们各个部分的代码吧,理解每一个环节的函数代码

Part1:游戏的第一个流程是输出界面,并让玩家输入是玩还是不玩,若为玩,则进入到game的程序代码中,若不玩,则显示退出游戏

图片

下一步的逻辑思路是去设置game此游戏函数的程序代码

由于玩的时候,我们要有两个二维数组,一个数组为mine[Rows][Cols](row表示的是数组的行。而col表示的是数组的列),此数组作用为明确布置雷点,另一个数组为用来寻找雷点与展示寻找过程,为show[Rows][Cols]

Part 2 ——构建完game中的 函数模型

2-1初始化函数模型

初始化模型后,我是要展现出来的,且之后也要用到很多个打印展现,因此,此处要构建一个打印模型

2-2打印(展现)函数模型

而打印完后就要开始游戏的核心了,就是要去设置雷点

2-3 布置雷函数模型

在布置完雷点之后,我们要做的就是去扫雷,去发现雷,而在去找雷的时候,我们可能会踩到雷,踩到雷,则游戏结束,如果为踩到雷,那么就要显示其附近是有多少个雷点。

2-4寻找雷点函数模型

此中,要注意的一点为对于wins的设定意义,由于不应该让其不断地循环下去,当其成功的找到那10个雷点时,其相当于在9*9=81的坐标中试了9*9-10次,即71次,因此,当试了七十一次时,就说明已经成功了,可以退出循环。

最后一步为计算其周围的雷点个数

2-5计算雷点个数模型

只要将此坐标的的周围的数字都加起来,即可知道有多少个雷点,因为雷点为1

由于数组表示的为ASIC码值,我们要返回的为整数,所以要每一个字符都减去一个'0',总共也就减去了八个

3.构建好的game函数

4.构建好的主函数

一个扫雷游戏的小程序就完成啦!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和煦的糖果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值