只有光头才能变强。
今天给大家来的是一款于1992年发行的小游戏,是的,你没看错,就是1992年。那这款游戏是什么呢?它就是《扫雷》,一款大众类的益智小游戏。
也许你可能不会玩,但是你绝对不可能听说过它!(实在没听过我也没办法,这不能怪我)
Windows系统以前自带这款小游戏的,如果你生活在城市,可能接触的更早!一般刚开始接触电脑止不住的想玩玩游戏,然后就会碰到这个小游戏!
这篇文章主要为大家详细介绍了C语言实现扫雷小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
效果展示:
编译环境:
VS2015 && easyx
游戏规则,游戏主要实现的功能:
-
游戏的主界面,是一个一个小方格,在小方格上单击左键,可以翻开小方格看看后面有什么。
-
在这些小方格的背后隐藏着雷,如果不幸点中了雷,那么就GameOver了。
-
如果点中的不是一个雷,那么就是一块空地,这个时候会出现两种情况:
- 用鼠标点中的空地周围八个点内有雷,那么就显示雷的个数
- 用鼠标点中的空地周围没有雷,这个时候就将周围的空地全部显示出来,遇到该显示数字的空地,就将数字显示出来。
-
在小方格上,点击鼠标的右键,可以将一个空地标记为雷,当然这个功能只是为了方便你记忆你之前确定是雷的地方。
-
当空地上剩余的格子数和雷的个数一样多,那么这个时候就应该算是胜利啦。
OK~游戏流程说完了
如何实现这些功能
-
首先需要一张地图,一般情况下我们都可以用一个二维数组表示一个地图,每一个元素代表着扫雷中的一个小方格。相应元素存储0,那么地图上的这个位置就是空地,相应元素存储1,那么就代表这个位置就一颗雷。
-
在控制台上依照二维数组长度和宽度,打印相应的小方块。
-
然后就用鼠标点击那些小方块,对于控制台来讲,在黑框框的区域中是有坐标的,可以使用一些函数捕获到你点击了屏幕的哪一个坐标。
-
对于控制台来说,打印一个字符,有的字符横向占一个位置比如普通的字母数字,有的字符横向占两个位置比如一些图形字符: ①②③■◆等等,这点在控制台编程的时候要注意。
-
当点击屏幕的时候,获取到点击的坐标后,去二维数组中查看相应的位置是雷还是空地,从而做相应的处理。
-
假如点击到了雷,那么就控制游戏结束,假如点击到了空地有两种情况
- 点击的空地周围有雷,那么就将雷的个数显示出来
- 假如点击的空地周围没有雷,那么就使用递归的方法去探测周围的点,探测出与其相连的所有周围有雷的点。
【源码获取】:
由于平台原因,小编将完整源码放在小编自己的C语言/C++交流④群:836880131!资料共享在群文件里面,有需要的可以自行添加获取~
如果对代码有任何建议,都可以添加小编的学习交流群,欢迎大家来讨论~
源码展示:
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFTPRESS 0xff01
#define LEFTCLICK 0xff10
#define LEFTDRAG 0xff19
#define MOUSEMOVE 0xff08
struct
{
int num;/*格子当前处于什么状态,1 有雷,0 已经显示过数字或者空白格子*/
int roun