扫雷游戏详解——附源码

目录

1.成品图及游戏的功能 

2.游戏实现的基本思路

2.1实现菜单给玩家选择

2.2初始化棋盘

2.3数组大小的问题

2.4对棋盘赋值

2.6布置雷

2.7排查雷

3.代码基本实现部分

3.1主函数部分

3.2 初始化棋盘

 3.3对两个棋盘进行赋值

3.4打印棋盘

 3.5布置雷

 3.6排查雷

 3.7函数声明

4.扫雷游戏的源代码 


不知道你们有没有完过扫雷游戏,即使没有玩过也没关系,今天我们就来实现一个简单的扫雷游戏。

我们要的效果很简单,能实现基本的功能,代码写起来感觉不会很复杂就可以了。

话不多说,先上一下成品的样子:

1.成品图及游戏的功能 

游戏的主要功能有

1:棋盘内有若干个雷

2:玩家输入要排查雷的坐标

3:在玩家输入的坐标处显示周围八个坐标有几个雷

3:若玩家将所有的雷排查完,结束游戏,玩家胜利

4:若玩家输入有雷的坐标,则玩家游戏失败

5:玩完一把玩家可继续选择进入或退出游戏

效果如图所示

2.游戏实现的基本思路

2.1实现菜单给玩家选择

站在玩家的角度,我们肯定是要制作一个简易的菜单来供玩家选择的,包括进入游戏,退出游戏等等,这个步骤也很简单,我们通常把这个步骤放到主函数内实现。

2.2初始化棋盘

大家看上面的棋盘可别以为我只定义了一个棋盘,其实不然,我们需要用到两个棋盘。

一个棋盘专门用来存放我们布置好的雷 ,我们把这个棋盘命名为mine吧

一个棋盘专门展示出来给大家进行排雷 ,并且把排雷的信息存入这个数组,我们把这个棋盘命名为show吧

注意:这两个棋盘都要定义为字符型的二维数组,而不是整型的

这两个棋盘都要先初始化为0,在后面的过程中,大家一定要分清这两个数组哦

2.3数组大小的问题

虽然图中我们的棋盘时9*9大小的,但是我们前面对游戏的功能进行约定过,我们要在玩家输入的坐标处周围八个坐标有几个雷。如果我们定义的棋盘是9*9大小的。当我们输入的坐标是偏中间 比如 4,4  3 ,6 这些,我们可以很好地访问到这些坐标处周围的八个坐标,但如果我们要排查边边上的那些坐标,在访问边边上的周围的八个坐标时,就会造成越界访问,所以我们要定义11*11大小的坐标刚刚好,上下和左右两边都多出一行。只要我们打印的时候只打印中间的9*9部分就可以了。

2.4对棋盘赋值

这里我们要先约定好,我们是有两个棋盘的

一个是名为mine的棋盘,  我们把它数组的内容全部初始化为字符0,0表示不是雷,我们可以用1表示是雷,后面我们布置雷的时候会用到这个字符1

一个是名为show的棋盘,我们把这个数组全部内容初始化为字符*,玩家就是在这个棋盘上进行扫雷,每扫一个,*就少一个

注意:赋值的时候是整个数组的大小,是11*11的部分,而不是9*9的部分

2.5打印棋盘

将棋盘初始化好了,我们就要把棋盘打印出来,这样玩家才好进行排雷,我们是只打印中间9*9的部分,而且只打印show数组,如果把布置好雷的mine 数组打印出来了,玩家就可以看到雷了,但我们在后面布置好雷的时候可以把mine 数组打印出来观察一下,看一下有误问题

2.6布置雷

这里我们就先约定好在9*9的棋盘上布置10个雷

布置10个雷,我们就要让电脑随机生成10个坐标,然后对应的二维数组的内容赋值为字符1

产生随机值是要用到srand函数的,如果大家对这个还不了解,可以去了解一下它的用法

这里我就不细讲了

2.7排查雷

我们要让玩家输入坐标,玩家没输入一次坐标,若玩家没有被雷炸死,需要在坐标处显示坐标周围有几个雷,我们约定过布置了10个雷,所以玩家要赢的话必须排查71个坐标,若玩家输入的坐标处有雷,玩家就被炸死了,结束游戏

3.代码基本实现部分

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值