1.前言
想信很多铁子都玩过扫雷游戏吧,但肯定也有些铁子没玩过,所以我先给大家简单的介绍一下扫雷游戏的规则。简而言之就是在最短的时间内根据点击格子出现的数字(出现的数字代表这个数字周围雷的个数)找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。那么用C语言代码怎么来实现这个扫雷游戏呢?那就请保持好奇,跟我一起往下看:
2.扫雷游戏的实现
(1)游戏设计
通过菜单可以实现选择继续游戏或结束游戏,设置一个9*9的棋盘,随机布置十个雷,可以进行排查雷如果点击的不是雷则显示这个数字周围雷的个数,如果是雷则游戏结束。如果将除了十个雷以外的非雷找出来,则获胜。
(2)搭建游戏框架
首先你应该在编译器上创建两个.c源文件(一个用来写游戏的主要框架以及所使用的函数,另一个则用来放函数的代码),接着创建一个.h头文件,用来定义变量和函数,方便调用。
如图,你可以用一个do...while循环,和switch语句来搭建一个框架,如果一把玩完还想玩就可以通过选择继续下一把,如果不想玩可以直接退出。
(3)初始化棋盘
我们设置两个棋盘,这两个棋盘对应数组,一个mine数组用来存放布置好雷的信息,一个show数组用来存放排查出雷的信息。将mine数组全部初始化为‘0’,方便后续布置雷,将show数组全部初始化为为‘*’ ,在排雷时可以区别已经排过的位置和未排过的。如:
(4)布置雷
在mine数组中初始化界面全部为‘0’,随机的布置十个雷,如果该位置没有雷就将‘0’改为‘1’,直到布置完设定的雷的个数。
布置完成后的盘面:
(5)排雷
点击盘面,如果该位置不是雷,则会出现一个数字,这个数字就是该位置周围雷的个数,根据数字进行推理判断,从而进行排雷。
但是除此之外我们还要避免一种特殊的情况,如下图:
在图示位置,当我们排查该位置时,就会访问周围一圈的八个位置,但已经超出盘面的范围就会发生越界,因此我们因该在棋盘周围在加上一圈,即将数组创建成11*11。
这里就体现出用‘0‘初始化棋盘,并用’1‘代表雷的好处。可以更快,更方便统计雷的个数,只需要将它们加起来即可。当然这不是唯一做法,你可以用其它的字符来代表雷,只是处理起来稍微复杂一点。
统计雷的个数:
排雷:
(6)其它注意点
在定义变量时,不要直接赋值,可以在头文件中进行定义,如:
这样做可以方便修改,在这我们是在9*9的棋盘上排10个雷,后面如果我们想加大难度或者修改成我们想要的棋盘和雷的数量,就可以在此处直接进行修改即可。
还需要注意的就是,在函数的使用上,形参和实参等关于数组和函数需要注意的问题,在使用时一定要小心,另外在设计时,我们可以按照上面的步骤一步一步进行,每一步写完,先运行一下,检查如果没有任何问题在进行后面的步骤,这样可以提高效率,避免一些不要的问题!!!
(7)游戏代码
game.h:
game.c:
test.c:
3.总结
以上就是我对扫雷游戏的看法与见解,希望对大家有帮助。如有不足还请指出,我会努力改正。想玩自己写的扫雷游戏的铁铁们还在等什么,抓紧搞起来!最后祝大家新年快乐,在新的一年里健康快乐、万事如意!好运多,喜事多,开心多!!!路过的留下你的小红心吧!
谢谢观看!!!