前言:
今天我们讲的扫雷游戏,在此过程中,我们会经常提两个字,纵横
接下来,正片开始

在开始讲解扫雷游戏之前,我们先来思考一个问题:我们之前的代码是不是都是写在一个源文件里面?那么这次我将换个方式讲解一下扫雷游戏,此后我也会尝试一下以多文件的方式写猜数字游戏。

首先还是之前我们在猜数字游戏里使用过的程序
void menu()
 {
     printf("******************************\n");
     printf("********* 1.开始游戏 *********\n");
     printf("********* 0.退出游戏 *********\n");
     printf("******************************\n");
 }
void game()
 {
     char mine[ROWS][COLS] = { 0 };//(初始化)答案盘的纵横
     char show[ROWS][COLS] = { '*'};//(初始化)题目盘的纵横
补充:1.上面两个数组中中括号内的参数需要在game.h这个头文件中用#define去定义纵横数量
2.在主函数所在的文件中写上#include“game.h”,否则,程序依然会报错喔
什么?你不知道为什么这个头文件要用引号而不是<>?,没事,那我开个小灶,给你讲一下吧。
首先我们要知道stdio.h并不是我们自己创造的,换句话说,它是前辈们总结出来的一个头文件,我们只是站在前辈们的肩膀上做程序而已,所以以表尊重,我们统一使用<>,而game.h是我们自己临时创造出来的,所以用“”。

     Initboard(mine, ROWS, COLS,'0');//初始化答案盘    
     Initboard(show, ROWS, COLS,'*');//初始化题目盘,棋盘有纵横,初始化时,函数的参数有数组名、行、列以及初始化的符号
     SetMine(mine, ROWS, COLS);//在答案页在埋雷
     display(mine, ROWS, COLS );//打印答案盘
     display(show, ROWS, COLS );//打印题目盘
     //SetMine(mine,ROWS,COLS);
     FindMine(mine, show, ROWS, COLS);//排雷时,计算机需要将题目盘与答案盘进行对照
 }
void test()
 {
     int input = 0;
     srand((unsigned int)time(NULL));
     do {
         menu();
         printf("请选择>:\n");
         scanf("%d", &input);
         switch (input)
         {
         case 1:
             game();
             break;
         case 0:
             printf("游戏退出\n");
         default:
             printf("输入错误,请重新输入\n");
         }
     } while (input);
 }
int main()
 {
     test();
     return 0;
 } 
这次的代码看上去会与上一次猜数字的有所不同,但实践上是一样的,只是这次的代码进行了多次函数调用

补充:void broad这个函数中少了个形参——char put,用于存放先前的‘0’和‘*'
注意:使用了荧光笔涂色的是需要大家注意的
也许有小伙伴会问,为什么是ROWS ROW+2,其实这样设计可以防止在排查第九行雷出现错误,那么同理列也是一样的道理
那么game.h呢差不多就是写一些头文件,以及传输从test.c的文件中的一些函数,如果不太理解的朋友可以把它理解为中转站
那么接下来,我们就要用鬼谷纵横术来写最后的代码了

小提醒:我们虽然在game.c这个文件中输入了很多头文件,但是这是个全新的文件,因此要将之前的文件名做成头文件的形式放进该文件
注意:set对应的形参也就是上面我补充的put形参

之所以是%2d并且空格,是为了方便对齐

如图
 
因为当我们输入坐标后,坐标周围一圈需要被展示,所以如图
 
 然后是循环和判断
 然后是循环和判断

那么我们来总结一下思路: 首先和上次的猜数字游戏一样的模板不变,那么我们要从本次代码中要学会的内容:
1.
#define ROW 9
 #define COL 9
 #pragma
 #define ROWS ROW+2
 #define COLS COL+2
 #define EASY_COUNT 10
以上的则是要记住的,可能一时半会不理解,等我们的道行更深的时候就会了解
2.制作游戏是时要学会多文件思想,有助于我们在编写程序的时候思路清晰
3.自己设置的头文件要用“”而不是<>
4.理解扫雷游戏的制作思路:初始化棋盘、打印棋盘、埋雷、排雷以及每一步骤中容易出错的部分。
那么今天已是正月初九了,各位大学生也快开学了,祝大家在新的一年里心想事成
