C语言实现简易扫雷游戏

实现这个游戏,我们需要用到多文件的形式来完成。其中 text.c文件写游戏的测试逻辑,game.c文件中写游戏中函数的实现等,game.h中写游戏需要的数据类型和函数声明等。

首先,游戏开始前,我们要先打印一个游戏选单,来确定玩游戏,或者退出游戏,这时我们就需要自定义一个函数来完成,用menu()来完成,我们通过选择1 或者 0,来确认,当然如果我们选择了别的数,就需要提醒他,选择错误,让他重新输入,这时就需要用到swtich语句了。

代码如下:

通过选择游戏之后,我们通过game()函数来实现游戏,扫雷游戏,我们首先要打印9x9的棋盘,但是为了防止后面统计雷的时候不准确,因为我们玩过扫雷游戏的都知道,我们选择一个地方没有雷的话,他就会统计周围一圈雷的个数,所以我们弄一个11x11的数组来,但是我们只会打印9x9的。在设置这个数组的大小的过程中,我们会用到一个小办法,用define来定义他的行和列,这样,今后修改扫雷游戏布局的大小就会简便很多。然后我们用两个二位数组,一个全部初始化为'0',一个全部初始化为'*',其中,这个全部为‘0'的数组是用来之后设置雷用到,然后这个全部是’*‘的就是用来给扫雷玩家看的,这时,我们通过InitBoard()这个自定义函数来实现初始化

代码如下:

我们想要同时初始化两个数组的时候,我们在传参的过程中,把想要初始化的值给写上,就可以完成两个数组的初始化,当然,我们也可以打印一下棋盘来看看是否初始化成功,这里就会用Dispaly()这个自定义函数来实现打印看看。

代码如下:

但让,为了使玩家们能更清楚的获得坐标,我们就把行和列给打印出来。

接下来就开始到布置雷的过程了,我们会用到之前的那个随机数生成的函数rand()用来生成1--9的随机数。然后我们还是用define来定义雷的个数,用SetMine()自定义函数来实现。

代码如下:

我们用到while循环,布置雷成功一次,count就减减,直到十个雷布置完成,就退出循环。

最后就是排查雷和判断输赢。我们用FindBoard来实现。

代码如下:

我们会让用户输入两个值,刚好是坐标来排雷,如果刚好坐标是雷,游戏结束,我们就把雷的分布图打印给他看,当然,如果没有雷,我们就要统计他周围的个数。我们用GetMine()这个函数来实现。

代码如下

我们直接用输入地址,周围的8个地址相加然后-8x'0’的个数来得出,然后后面在加上字符0,这样就能得到个数。

最后判断赢,还是在Find函数里面,刚好这个数组是9x9就有81个元素在加上10个雷,我们只要小于9x9-10,这样就能达到赢的条件。

最后完整代码如下:

text,c文件

game.h文件

game.c文件

这两个.c文件都需要用#include"game.h"来包含头文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值