利用c语言制作简易扫雷

在制作扫雷原理之前,我们先了解扫雷的原理。当你挑选了一处点击后,如果该处不是雷,它会显示自己周围一圈雷的数量,并且如同花朵一样绽开,绽处如果周围一圈没有雷,那么会继续延伸,有了则会停止继续绽放。获胜条件就是除雷以外处全部被翻开过。好的,接着我们开始编写代码程序。

首先分为三个文件,分别是game.h,用于函数声明,game.c,用于编写游戏内部程序,同时也能让你思路更加清晰,最后是test.c,能够测试游戏效果。

该处代码为简易测试代码,利用do while循环,实现至少打印一次游戏选项画面的效果。

switch语句逻辑,1为进入游戏,0为退出游戏,同时while循环判定条件也为input,可以实现程序的结束,为了以防有人输入错误,输入default。

创建两个二维数组,用以存储游戏数据,分别的放置雷区的数组,以及玩家游戏时看到的数组。

以简单模式扫雷为例,9X9的棋盘,但扫雷时判断周围多少雷的过程中可能会出现数组越界,所以选择11X11数组,给它扩上一圈。同时运用define,方便你改变游戏格子大小,而不需要后面一个一个改参数。

对棋盘进行初始化。

埋雷,制作棋盘。

为了确保雷的位置不同,选择rand函数来随机。

制作棋盘,看个人喜好,制作时通过不断调整来达到自己想要的效果。

个人粗制效果如图

这个是答案,后面测试的时候输出出来,测试代码有无bug。

体验游玩过程的时候还是注释掉。

添加选择,标记或者排雷。

注意一些玩家可能会出现的问题,例如重复输入坐标,输入坐标不在范围内。

整个过程是重复的,所以大体用while循环括起来。

对于排雷,分为两种情况,一是提示,二是踩到雷,直接被炸死。

提示我们选择函数递归,使得如同真正的扫雷那样炸开来式的提示。

为了使逻辑清晰,函数递归分成两步。

第一个是小式的提示,统计周围一圈的雷数。

第二个是绽开式的提示,如果某处周围雷数为0,则会看该位置周围其余位置,然后重复此步骤。

最后增加胜利判断条件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值