“扫雷游戏”

1.扫雷游戏的分析和设计

1.1扫雷的功能说明:

  • 使用控制台实现经典的扫雷游戏
  • 游戏可以在菜单主页选择自己想要继续游戏或许退出游戏
  • 扫雷的棋盘是9*9的格子
  • 默认是随机放10个雷
  • 排查随机雷
  1. 如果不是雷,就显示周围有几个雷
  2. 如果是雷的话,就被炸死游戏结束
  3. 把除十个雷之外的所有雷找到,排雷成功,游戏结束

游戏界面:

               初始界面                                  排雷界面                                               排雷失败的界面        

1.2游戏的分析和设计

1.在我们扫雷的过程中,布置雷和排查的出来的雷信息都需要的存储,所以我们就需要一定的数据结构来存储这些信息。

因为我们需要在9*9的棋盘上布置雷的信息和排查雷,首先就是创建9*9的数组的二维数组来存 

 

     这个便是9*9空棋盘啦

当然呐,也要考虑这个扫雷在边的情况下,就会越界会导致执行程序的报错,因此我们最好在设计的时候会大一圈设计成11*11,来保证它不会越界哈,但我们雷区还是该放在我们之前的9*9的坐标上,周围外一圈不去布置它,但越界时再使用利用它。

     跟我们之前的玩的扫雷一样,1是雷,不是雷就存储0,但要是我们该标记这个雷的位置的话,作为拍雷的参考点又该怎么做呢?,总不能像他们游戏一个插个🚩上去吧?

      当然我们肯定有解决的方法,比如:雷和非雷的信息可以一些符号和数字参合在一起,就会更好区分了,也不会那么容易混淆啦('1'就是雷,'0'非雷,切记不要在这标点加空格,容易让自己报错),为让这个游戏没有那么单调无味,可以为此这个游戏添加一些神秘感,可以分成俩个棋盘,一个可以设为show棋盘,初始化就可以用符号'*'覆盖在上面,好让雷或者非雷的数字隐藏在这下面,另一个便是设mine的棋盘,就是为了布置雷的区域,也是要在11*11棋盘布置哈,为了防止越界

                                

          show输出的初始化状态                                                  mine输出的初始化状态

对应的数组是:

char mine[11][11]={0}; 

char show[11][11]={0];

2.扫雷游戏代码的实现

尽可能使用多文件的形式声明或定义,还在就是在敲代码的时候一定要把自己的思路理清楚,如果自己都敲代码的迷茫,那你怎么才知道自己答案和自己内心所想的符合呢,浅浅的多嘴几句。接下来进入正题。

   刚开始,肯定就先设立一份菜单来看看每个玩家是想玩这个游戏还是误操作了呢,接下来就是初始化一下棋盘,需要注意的是在使用for循环列数组行可以从0开始初始化,而数组列的话就不能可以初始化为0,要改为1,因为二者这个是的0是公用的哈。当然为啥要这步呢,是为后面查自己想要的坐标的时候,看的会十分的方便。

                                     初始化棋盘       

一、初始化棋盘,是初始化俩个棋盘哟,一个打印'*'的show棋盘,另一个是答应埋雷区的mine。

              打印棋盘                                                                      打印棋盘

二、而初始化完就可以开始打印棋盘的啦,当也不要忘记声明了哈,尽可能把每一句话,都大致写一下在做什么事情,这样思路也好梳理清楚,错了也好对症下药。

三、接下就是布置雷区了要说这个时间戳这个东西啦,要注意包括俩个头文件哈,千万别漏了,不然会一直在报错,这些头文件的话,都可以设立一个头文件的文件,放在里面,倒是利用#define 引用一下,就多个文件都可以使用啦,说起这个头文件的引用,这个又可以给兄弟们补充一下,当变量名变次数较多的话,就是直接用刚刚说#define 这个也叫宏定义,可以给它定义一个值,只要输入它对应的单词,便可以直接引用,这个在后期修改雷或者一下,要多此使用的变量名十分的便利,还有便是那,srand((unsigned) time(NULL))这个一定要用在梦函数的里面,不然用在别的函数里时,每次调用这个函数,他都会随着时间戳一直在变化,你只有一次机会,猜错了它又会随机变化数值,直至帮你自己给搞奔溃。

四、排查雷区,也就是最后一步了,当做到这步的时候基本也快到尾声了,当你看到坐标[3][6]的时候当出现有几个1的时候的,就是这周围一圈8格里有几个颗雷,'0'+'0'=0,因此可以用把周围几1都加一起来,然后再减去‘1’就是表达有几个雷啦,当然可以别忘了要把值也要赋值给show的棋盘,俩边棋盘都不能少哟。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值