实现扫雷游戏

目录

前言

扫雷思路

打印菜单

初始化棋盘

打印棋盘

存放雷

统计雷的个数

简单测试


前言

        相信很多人小时候都玩过扫雷游戏,如果用C语言又应该怎么编程实现呢?

       一般来讲,扫雷最开始会有一个棋盘,当玩家点击一个位置时就会显示这个位置周围有多少个雷,今天我们就用C语言来实现一个简单的扫雷游戏!

        一起来看看吧!

扫雷思路

打印菜单

     首先我们可以使用一个函数,来进行菜单的打印,让用户进行选择,如果选择1,用户就可以进入扫雷游戏!

    游戏的实现,我们可以用另外的头文件和源文件来进行实现。

    具体代码如图:

初始化棋盘

          我们知道棋盘中有雷和非雷,我们可以使用一个二维数组来进行棋盘的布置,因为后面还需要统计周围雷的个数,如果是一个9*9的棋盘的话,我们就需要使用一个11*11的二维数组,在9*9的基础上,上下左右加一行,就不需要进行判断是否越界!

        为了更加容易更改,我们可以使用宏定义的方式来指定数组的行数和列数。

        为了后面与统计雷的个数进行区分,我们使用字符数组来进行,用字符‘0’表示非雷,用字符‘1’表示雷。

       同时我们这里初始化两个数组,一个用来存放雷,一个用来展示。

       宏定义和函数声明我们可以在头文件game.h中实现

打印棋盘

      这里的棋盘打印只需要用户看到的9*9的形式,我们也可以进行一定的优化,打印出它的行号和列号

效果如下:

存放雷

       我们前面提过在字符数组中,用字符‘0’表示非雷,用字符‘1’表示雷。这就需要我们在棋盘中进行雷的存放。我们可以使用宏定义的方式来确定雷的个数,通过坐标的方法在不同的10个位置存放雷。雷的位置是随机的,我们就可以使用rand这个函数,通过不同的坐标来存放雷。

代码如图:

我们可以通过打印的方式看是否存放雷成功,我们可以看到确实存放了10个雷

统计雷的个数

当玩家输入坐标之后,有下面三种情况

1.坐标不在范围内,重新输入

2.坐标在范围内,但是这个坐标是雷,游戏失败

3.坐标在范围内,并且这个坐标不是雷,就需要统计周围雷的个数并且进行展示

在统计周围雷的个数时,我们需要注意的我们是使用字符数组来存放雷的,字符本质上是ASCII码值,减去字符0,得到一个整数。比如‘1’-‘0’=1,因为字符1的ASCII码值为49,字符0的ASCII码值为48.在进行展示的时候需要加上字符0,将雷的个数存放在字符数组中。

当排除了所有不是雷的位置,成功通过游戏。

简单测试

到这里代码就完成了,我们可以用3*3的棋盘和1个雷来测试代码是否正确!

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值