扫雷小游戏

  使用c语言创建一个小扫雷

创建了三个文件两个源文件和一个头文件:

game.c  扫雷.c  game.h

首先在扫雷文件里主函数开始

调用test函数,test函数也是调用了menu和game函数

test函数是一个大概的模板,运用了一个input来输入是否开始游戏如果输入0就结束游戏,如果输入1就开始游戏,如果输入的不是0和1,那就要重新输入。test函数先调用menu函数,menu函数就是一个菜单的样子,如下图所示:

输入1就开始游戏

输入0就会结束

输入其他的数就会让重新输入

如果输入了1就会进入game函数,game函数里定义了两个数组一个是mine还有一个是show

运用数组给我们展示mine函数全部赋值零,然后如果是1就是雷,show数组是展示给我们看的都是一个11行11列的数组但只使用9行9列,周围的一圈都不使用,show数组是每次给我们展示看的我猜测几行几列show就会在对应的行列展示,show数组这个行列是雷就是炸开,如果不是雷就是显示一个九宫格内雷的个数,show全部赋值是*号每次都是在show数组内改变的。

如上图是踩到雷了

上图猜到第二行第一列不是雷就会展开show数组,是1也就是九宫格内只有一个雷,

game函数进入调用InitBoard函数此函数是给数组赋初值,有四个形参,第一个是数组名,第二是行,第三个是列,第四个是赋的初值,game函数内调用了两次,一次是给mine数组赋初值,还有一次是给show数组赋初值。

然后game函数再执行put函数put函数进入调用了函数srand和time库函数,定义了一个整形变量number赋值Lei这个是define定义的整形常量是雷的个数,后面用了一个while循环i和j赋值i==行,j==列,数组mine的行和列赋值0或1,如果赋值了number个雷就退出循环。

rand也是库函数是一个随机数,rand()%9==随机数零到八+1等于1到9,rand()也可称为假随机数,用了前两个库函数,把这个变成了一个真随机数,time库函数是时间戳(时间戳是北京时间1970年1月01日08时0分0秒起始到现在多少秒)。srand()函数是随机数发生器的初始化函数。


给mine数组赋初值之后,进入check函数,定义了一个total整形变量给他赋值row*col-Lei也就是不是雷的个数,while循环total!=0,printf库函数打印一个请输入几行几列,方便程序的运行,scanf输入行和列,if判断i和j是否是1到9的整数,如果不是,则输出输入不对请重新输入,且重新循环,如果行和列对应上mine数组上是1则踩到雷了,输出ming数组并打印输出很不辛你踩到雷了。如果行和列对应mine数组不是1且show数组不是*,则此行和列已经被输入过了,打印输出该坐标已被查找。正常循环就会进入else if 进入Exchace函数。

,Exchace函数的定义是static类型,是静态变量,可以用来隐藏一个函数不给别人发现,可以进此类型定义重要的函数,此函数也是扫雷重要的一步,show的行和列等于周围九宫格里mine数组里的八个数加起来减7个0,因为他们都是char型的。

由下图所示game.h头文件包含了上面用到的一些函数,在此头文件内包含了,比如说一些头文件和define的宏定义,还有一些函数声明,后面的源文件都用了此头文件,自己定义的头文件要用引号,用引号是从用户目录开始找然后再找系统目录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值