扫雷游戏-c语言简单版

本文介绍了如何使用C语言在VisualStudio中实现一个简易版的扫雷游戏,包括创建头文件和源文件、设计游戏逻辑、初始化棋盘和雷的位置,以及用户交互部分。
摘要由CSDN通过智能技术生成

 大家好,今天为大家介绍一个简单的c语言小游戏--扫雷

在介绍之前,应该都玩过windows自带的扫雷,今天我们所研究的c语言扫雷是它的简化版

话不多说,现在开始展示

1.首先我所用的软件是visual studio ,创建文件名称,为了让代码更可观的叙述,设置了两个源文件,一个头文件如图:

1.开始打开test.c,我们先设计一下游戏的开始

这个是游戏的进入页面

命名两个数组来进行n*n的扫雷表示

这里进行一个void game()来进行不返回输出

要注意初值为‘0’;

接着

设计一个do while switch循环来进行进入游戏

如图

然后就是主函数的进行了

当然,这个时候游戏的启动还没完成,没法正常运行,只能无线的循环进入页面;

如图

这时候就要加一些东西来进行下一步

2.打开game.h头文件:

标题

        

这里我们是定义数组为9*9大小的扫雷(太多的话太繁琐了ps这是简易版),下面的+2是为了用数字更直观的表示棋盘的各个位置,这个后面再讲

这个时候就要引入个函数InitBorad        初始化棋盘

这里的char set 为了方便后面把棋盘的9*9的位置用其他字符表示出来

打开test.c源文件,

在上次的位置后面加入两行代码

mine 为初始化,show则是把棋盘所有位置变为*号,直观的看出变化

3.于是这个时候就要引入新的位置了,也就是game.c源文件

为了方便代码的运行,我们分为了三个部分

所以要使用其他的放的代码,我们就要使用

在test.c 和game.c文件中包含一下

然后在game.c中,我们借用InitBoard函数

来进行棋盘的初始化;

接着就要回到game.h中                

引入

DisplayBoard函数,回到game.c中

为了观赏性更好,我们进行名称的展示,后面的代码就是对数组的横行与竖行的展示

后面的i,j从1开始循环是因为前面的0来表示数字了。

如图:

再回到game.h中,引入新的函数

回到game.c中

对于这里的int count=EASY_COUNT;与while循环中的rand是为了使期盼中的雷的数量以及位置的随机;所以回到game.h中,引入一个定义以及#include 函数,

只有这些函数中才包含一些特殊的代码

先不急着回到game.c中,这时候我们要完善一下test.c中的一个地方

引入srand((unsigned int)time(NULL));如此才可以使*,也就是雷的地方能够随机;

还有test .c中

来展示下面的画面。//的内容就是所有雷的位置,因为要进行游戏,所以隐藏了起来。

因此回到game.c中继续进行下一步

还没完哦,基本的框架已经快要完成了,最后就是找的雷的位置,

回到game.h中,引入

也应在test.c中引入

回到game.c中

还是用while循环来进行判断,因为我们先前的设置为row,col也就是棋盘的横竖,用if来判断你所选择的坐标是否为雷,如果不在坐标,重新输入。

除去上面的,就是进入新的if判断,如果选择的是雷,游戏结束。

如图:

被炸死后,展示所有雷的坐标,后面进行选择是否继续.

如图:

如果不是雷的话继续输入新的坐标,后面的Displayboard在你选择玩坐标之后进行新的一个棋盘的详细情况的展示。

如图:

最后的if的话则是判断是否扫雷进行完毕,如果说检测到一个雷的话会有win++。

当win++的数量等于n*n的数减去雷的数目时,游戏结束,取得胜利。

当然,要是想要像windows上的一样判断周围有几个雷的话,在void FindMine()前面输入一个判断函数:

         

判断可以用这种形式,也可以换成for循环形式,这里我就不展示了,你自己可以试试。

4.到了这里,所有的代码也就输入完成了,让我们看看完整的代码

game.h:

game.c:

test.c:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leeltc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值