(初学不久,如有错误,还望指正包涵)
- 准备工作
软件:vs2022
创建一个game.h,game.c以及test.c
(上面三者分别用来
1.对所需头文件的引用以及对函数声名。
2.存放实现过程中所需要用到的函数。
3.调用2中的函数进行游戏的实现。)
需要使用到的头文件有1.stdio.h 2.stdlib.h 3.time.h
(本文只做了简单模式下的扫雷,其他难度并无给出,可自行扩展)
- 打印菜单。
既然要开始玩,那必然少不了游戏菜单,菜单部分我们用Menu来表示
当然菜单看个人爱好,可以自主修改;
- 实现菜单的开始与结束
在这里我们先使用srand函数使得后面对rand取值的随机值按时间来变化。
然后使用do-while循环执行游戏的开始与结束
(input为一时执行游戏的主体)
三.对所需数组的初始化
我们都知道扫雷游戏在简单模式下为9*9的方阵,正好可以用二维数组实现。
为了方便今后对难度的修改,我们需要定义常量在.h中
此时我们需要用两个二维数组,一个记录雷的位置,一个用来实现对雷的遮盖;
以上是定义的两个数组。
函数的主体:
(记得在.h文件中加上对函数的声明)
四.实现埋雷的函数
这里只对不显示与玩家的数组进行埋雷。
五.实现扫雷的主要函数
facemine函数:
打印函数(print)
(这里的这个函数是为了检验当玩家所选位置不为雷时周围所有雷的数量并在上面的else if中对对玩家展现的数组中改变玩家所选位置的字符并显示其周围雷的数量,当然不止有这一种实现方式,但这种最为简单易懂)
同时这里其实也解释了上面为什么定义ROWS, COLS ,ROW ,COL,当我们要排查玩家所选位置周围雷的数量时,难免会遇到边缘位置,为了不出错,我们实际上创建的是11*11的数组,但显示时只对玩家显示9*9的中间部分,从而避免报错。
六.制作完成
game.h:
game.c:
test.c:
以下为运行后的部分截图
(这里我设置的80个雷,基本选对概率不大)
(这里设置的为10个雷)
本文解释部分主要解释需要注意的点,第一次做这种小游戏程序的解释不够熟练,未详细说明处还请包涵。