C语言扫雷解析

我们从源码开始,分析整个游戏的运行过程
全部代码请见【C语言扫雷 - CSDN App】

minesweeper.c片段

#include 
#include "minesweeper.h"
#include 

char ShowMines[X][Y];
char mine[X][Y];
char MineNumber[X][Y];
char safe[X][Y];

片段中引入了,根据时间可以随机生成雷的位置。

下面是四个字符数组,x坐标和y坐标对应了棋盘中的x轴和y轴,不过棋盘中是从1开始,数组中从0开始。

四个数组的含义:

  1. ShowMines:显示在屏幕上的数组
  2. mine:记录雷的位置,有雷是1,无雷是0
  3. MineNumber:记录棋盘中每一个点周围的雷数
  4. safe:记录无雷的位置,初始状态与mine数组刚好相反

minesweeper.h

#define X 5//棋盘的长
#define Y 5//棋盘的高
#define B 1//雷数

void set();
void show();
void number();
int play();
char IntToChar(int a);
int clean(int a, int b, int x, int y);
int clean_a(int a, int b, int x, int y);
int clean_b(int a, int b);
int clean_x(int a, int b, int x, int y);
int clean_y(int a, int b);
int SetSeed(unsigned int seed);

开头是三个宏定义:X,Y,B。X控制了棋盘的长度,Y控制了棋盘的高度,B控制了棋盘的雷数。

几个函数的意义:

  1. set():设置四个数组的初始状态
  2. show():将ShowMines数组打印在屏幕上
  3. number():设置MineNumber数组
  4. play():控制游戏的运行和停止
  5. IntToChar():输入int类型,输出对应的char类型
  6. clean()系列:递归展示雷数为0的点
  7. SetSeed():辅助set()在随机位置生成雷

你可能感兴趣的:(minesweeper,c语言)