目录
一、前言
本篇博客将对扫雷游戏的实现做详细讲解。而在完成此代码之前我们要十分清楚扫雷游戏的实现逻辑。接下来将讲解扫雷游戏的实现逻辑。
1.1实现逻辑
如图可知扫雷游戏是在一个n×n的棋盘中完成的,这里为9×9,而要想得到这种存储结构,我们自然想到二维数组来完成,可能会想通过一个9行9列的二维数组来实现,但是这里我们不妨细想一点,当你选中一个要排查的坐标该坐标若不是雷将显示它周围8个坐标雷的个数,当坐标位置如图中箭头1那当然是周围8个坐标类的个数,但如果要是边角怎么办呢?就不是8个坐标了,所以为了代码容易实现,我们将数组扩大一圈,即9×9的扫雷范围我们用的二维数组是11×11的。
扫雷顾名思义,我们还需要埋雷,但是埋雷的二维数组我们玩家是不能看见的,所以要创建两个数组,如果不是雷我们就要显示周围雷的个数,为了方便埋雷的数组我们全部初始化为‘0’,雷为‘1’,这样到时候显示的时候我们可以直接将周围的1加起来就是雷个数,将玩家可以看见的数组全部初始化为‘*’。
二、创建主函数
在一个头文件里创建如下所示代码:
void menu()//简易菜单
{
printf("************************\n");
printf("******* 1.play ********\n");
printf("******* 0.exit ********\n");
printf("************************\n");
}
int main()
{
int input = 0;
//srand((unsigned int)time(NULL)); 生成随机值
do
{
menu();
printf("Mine sweeping game, please select:\n");
scanf("%d", &input);
switch (input)
{
case 1: //输入1玩游戏
game();
break;
case 0: //输入0退出游戏
printf("Exit the game!\n");
default:
printf("Input error, please re-enter!\n");//提示输入错误
break;
}
} while (input); //游戏是一个循环过程。
return 0;
}
三、创建游戏逻辑
主函数创建好后,需要写game()这个函数,在此之前先创建一个game.c的源文件和 game.h的头文件。game(