一、游戏介绍
扫雷游戏在早年间是一款人尽皆知的电脑游戏,不仅内存小而且具有一定的挑战性,在我的童年时代对这个游戏的理解就是盲猜,即便不会玩也知道这个基本每台电脑必备的游戏,其游戏规则是玩家可以通过点击来翻开方块,如果是雷那么游戏就结束了,反之就会出现一个数字代表了其周围的8个方块中隐藏的雷的数目,通过计算可以排除剩下的安全区,全部排出即获得胜利
二、设计思路
由于是看了教学,所以有相似之处,但是游戏实现是自己构思所以可能不太一样,首先要打印棋盘,这里假设要打印一个9*9的棋盘存放10个雷,设想如果只用一个二维数组来存放雷,那么就不方便单独打印,还需要另外一个数组来存放“雷”,这里我们就用星号来表示,当棋盘打印出来之后还需要输入坐标排雷,然后判断是否是雷,不是雷就计数并打印出来,因此我们就分为三个文件:
- main.c//搭建游戏选择界面和游戏框架
- game.c//具体的游戏实现
- game.h//整个游戏的头文件、函数声明和宏定义
其中有两个数组:
mine数组//用于存放设置的雷
show数组//用于展示棋盘
三、代码实现
剩余的具体介绍老规矩看代码注释,有疑问或者不足之处还请评论区指教,谢谢各位,那么直接上代码
1.主函数&game函数
经典开局,设计很巧妙
int main()
{
int input=0;
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:game(); break;
case 0:printf("退出游戏!"); break;
default:printf("输入有误!请重新输入:");
}
} while (input);
return 0;
}
game函数(游戏框架)
void game()
{
//雷表示1,空表示0
int count=1,mine[ROWS][COLS] = {
0 };
char show[ROWS][COLS] = {
0 };//展示为*和数字表示周围的雷的数目
setboard(mine);//随机设置10个雷
initboard(show);//初始化面板
for (count = 0;count < ROW * COL - EASY;count++)//循环(总数-雷数)次
{
dpyboard(show)