C语言实现扫雷程序语言实现扫雷程序
使用C语言实现简单的扫雷程序,主要是对二维数组的运用,我们需要一个头文件,两个源文件来实现。
game.h //包含函数的声明,宏定义
test.c //包含主函数,函数调用
game.c //包含函数的定义
整体思路整体思路
1.要完成一个简单的扫雷程序,我们需要创建两个二维数组,一个保存我们随机生成的雷,另外一个向外界展示。
//使用宏定义定义常量,方便之后对数组的使用
#define ROW 11 //雷
#define COL 11
#define ROWS 9 //棋盘
#define COLS 9
#define THUNDER 10 //雷数
char mine[ROW][COL] = { 0 }; //存雷数组
char show[ROWS][COLS] = { 0 }; //展示数组
Arr_init(mine, show, ROW, COL, ROWS, COLS); //数组初始化
2.完成对数组的初始化后,我们需要对雷进行放置
void Col_thu(char mine[ROW][COL], int row, int col, int thunder) //布置雷
{
int x, y;
int i = 0;
while (i < thunder) //存放雷的个数等于雷的个数
{
x = rand() % (row-2) + 1;
y = rand() % (col-2) + 1;
if (mine[x][y] == '0')
{
mine[x][y] = '1';
i++;
}
}
}
3.布置完雷后,我们需要打印所需要的棋盘
存雷棋盘
void Print_che1(char mine[ROW][COL], int row, int col) //打印存雷棋盘
{
int i, j;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
printf("%2c", mine[i][j]);
}
printf("");
}
}
展示棋盘
void Print_che2(char show[ROWS][COLS], int rows, int cols) //打印展示棋盘
{
int i, j;
for (i = 0; i <= rows; i++) //方便我们输入坐标
{
printf("%2d", i);
}
printf("");
for (i = 0; i < rows; i++)
{
printf("%2d", i+1);
for (j = 0; j < cols; j++)
{