一、扫雷游戏分析关键步骤:两个二维数组的大小为11*11,但实际上操作的只有中心的9*9的棋盘,创建另外两行的原因是方便统计一个坐标周围3*3的雷的个数
1.创建两个二维数组一个存放布置好的雷(1号),另外一个存放空的棋盘(2号)
2.选手选出来的坐标传到1号棋盘上对坐标进行分析如果是雷就返回被炸死了,不是雷就算一下这个坐标周边一圈
有多少雷,并在2号棋盘上显示出来
结束标志:没被炸死,且棋盘上还剩下雷的个数的位置没被探索
二、代码
game.h- #define _CRT_SECURE_NO_WARNINGS 1
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define ROW 9
- #define COL 9
- #define ROWS ROW+2
- #define COLS COL+2
- #define MINES 10
- //初始化
- void InitBoard(char board[ROWS][COLS], int rows, int cols, char ch);
- //展示
- void DisPlay(char board[ROWS][COLS], int row, int col);
- //布置雷
- void LayMine(char board[ROWS][COLS], int row, int col);
- //开始游戏
- void Play(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);
复制代码 game.c
[code]#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"//初始化void InitBoard(char board[ROWS][COLS], int rows, int cols, char ch){ for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { board[j] = ch; } }}//展示void DisPlay(char board[ROWS][COLS], int row, int col){ for (int i = 0; i |