C语言程序扫雷游戏的制作和实现

本文介绍了初学者如何使用C语言实现基础扫雷游戏,包括输入输出、二维数组、随机雷的放置、雷的显示逻辑、菜单设置以及游戏通关判定。作者通过实例展示了如何设置盘面、计时、随机生成雷的位置和利用while循环检测雷的数量。
摘要由CSDN通过智能技术生成

       在学习了一段时间的C语言程序后,略有所得,于是觉得应该稍微记录一下所得,所谓“教学相长也”,清晰的阐述或许更有利于知识的巩固,同时也能将知识进行传播,当然,作为刚入门编程的小白,文章中或许会有些许不足,还望广大网友批评指正。

      所需用到的知识:输入输出函数,二维数组,随机值的设置,分支与循环,自定义函数

       扫雷游戏的实现,首先需要我们明白想实现什么样的效果,也就是以终为始,我们可以在网上查找一下扫雷游戏,发现是这样的:

左上角的十表示的是雷的个数,右上角是计时功能,根据通关相同的难度所用时间进行排名,当然如果我们仅仅从游戏设置上来说也可以不用这个计时功能,那么我们就只需要布置好这个9*9的盘面,然后布置十个雷就行了。可能有些小伙伴们没玩过扫雷游戏,这里就简单的把游戏规则粘贴一下:

 

      所以整理一下就是:首先需要布置好9*9的盘面,然后随即设置十个雷,再然后就是找雷的过程,需要我们实现显示周围有几个雷,那么应该怎么做呢?

      在这之前我们可以给我们的游戏增添一个小小的菜单栏,增加一点正式感。

       然后就是设置盘面,我们当然可以直接用*填写成9*9的盘面,可是我们后期需要根据玩家的输入进行更改,所以这里就要用到二维数组。

        二维数组的输入用一层for循环的嵌套,这里我们需要设置两个二维数组,其中一个数组就是显示在屏幕上的,在开始游戏前都用“*”隐藏位置,另一个则是我们布置雷的,可以用0来初始化,然后将部分位置改成1,代表雷。当我们打开某个位置时,就用这个位置周围的8个坐标的内容进行相加,它们的和就是雷的数目,然后把这个数字显示在我们打开的这个位置上,是不是就完成雷的显示了呢?如图:

     其中上面就是设置雷的数组,下面就是显示时的数组,我们只需要把这两个数组的坐标一一对应,就能实现输入坐标时周围雷个数的显示了。

         在设置雷的时候需要用到rand函数随机生成雷的横纵坐标,并且用srand函数对rand函数的初始值进行随机设置,可以用时间戳来实现。也就是这样srand((unsigned int)time(NULL))。

           最后就是找雷的过程,我们可以设计雷的个数为count,每当我们找到一个雷时就count--,当count变为0时就是雷已经全部被找出了,这个过程可以用while循环实现,当count变为0时就跳出循环,当然被雷炸死时也会跳出循环,所以我们可以设定一个标志flag = 1,如果被炸死,就让flag改为零,这样我们就将通关和失败区分开来了(如果循环后flag 依然·1为1,那么就是通关,如果变成了0,就是挑战失败)。当然,游戏通关的方式除了找出所有雷,也可以找出所有不是雷的位置,那么剩下的肯定就是雷,也就是反向侦察。具体实现的代码如下:

最后的称号部分也不知道为什么只能显示第一个,全部代码奉上,希望大佬们解惑

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值