扫雷思路概括

扫雷思路:
有个棋盘,布置雷,然后扫雷

准备两个数组,一个专门布置雷,一个给人看的

注意:
但是,排雷时,边上的格子,会越界访问,为了防止这种情况发生,我们将真实的棋盘扩大一圈。这样,就不会越界了。

步骤:
1.创建界面函数 
——无论什么游戏,都有游戏菜单,提供选择:1开始游戏  0退出游戏

2.创建存储布置雷的数组和玩家查看的数组
——进入游戏后,我们得有个扫雷界面。
这时,就用到两个数组,一个是存储布置雷信息的1号数组,当扫雷时,就是在这个数组里面判断的。一个是给玩家选择的2号数组,玩家选择扫雷目标是在这个数组进行的。
——游戏根据玩家在2号数组选择的坐标,去1号数组找对应的坐标进行判断。

3.棋盘初始化
我们得给这两个棋盘初始化,方便后面1号数组布置雷,2号数组排查雷。

4.打印棋盘(也可以先布置雷,但是先打印棋盘,可以方便查看前面代码是否出错)
——就是怎么好看,怎么打印。注意,打印的棋盘是比真实棋盘要小一圈的
另外,在写代码的时候,可以将两个棋盘都打印出来看一下。但是游戏时候,就只能打印玩家查看的排雷棋盘。

5.布置雷
——利用随机数生成来布置雷,范围是查看棋盘的范围(比真实棋盘小一圈) 设置雷的数量,每布置一个,就减一个。注意,布置过雷的地方,不要布置了。

6.排雷
——基础排雷就是:碰到雷就输了,若没碰到雷,就反馈周围有几个雷,还有排查过的地方,不能重复排查。
增加的功能有:
1.开头不炸功能 2.标记功能 3.展开功能

7.判断输赢
——被炸死就输了。
没被炸死,就循环继续,直到所剩未排查的地方==雷的个数,就赢了

6.1开头不炸功能
——当第一步就碰到雷,利用转移,将此处的雷转到其他非雷的地方。但是只能是排雷的第一步有这个功能。

6.2标记功能
——在排雷时,提供两个选项:1扫雷 2标记。
进入标记功能,有标记和取消标记,被标记的地方,不能排雷。

6.3展开功能
——当扫雷的地方满足三个条件:
        1.该坐标不是雷
        2.该坐标周围没有雷
        3.该坐标没有被排查过
当满足这三个条件时,就进行展开函数。利用递归将其周围也进行条件判断是否继续展开。
注意,还有一个隐藏条件:展开功能不要超出棋盘的范围 

最后,根据这个思路,我写了一个简单的扫雷:saolei · xiongxiong007/代码练习 - 码云 - 开源中国 (gitee.com)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值