用c实现扫雷游戏
**
游戏规则
:**
扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。
游戏主区域由很多个方格组成。输入你所想要点击的位置坐标,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷。
我的代码分为三个部分:
game.c/game.h/text.c
game.h
这部分是建立自己所需的函数库。
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include "stdlib.h"
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define MINENUM 10 //初始10个雷
void InitBoard(char board[][COLS], int rows, int cols, char set);//初始化界面
void ShowBoard(char board[][COLS], int rows, int cols);//打印游戏界面
void SetMine(char mine[][COLS], int row, int col);//随机设置雷
void FindMine(char mineInfo[][COLS], char mine[][COLS], int row, int col);//找雷
static int Zhank(char Mine[ROWS][COLS], char mineInfo[ROWS][COLS], int x, int y);//用递归实现展开未知区域
这里为了避免函数的重复调用使用了下面这样一条语句:
#pragma once
game.c
这里首先建立了一个初始化游戏界面的函数,游戏界面我们可以抽象为一个二维数组。
void InitBoard(char board[][COLS], int rows, int cols, char set)
{
int i = 0;
int j = 0;
for (i = 0; i < rows; i++)
{
for (j = 0; j < cols; j++)
{
board[i][j] = set;
}
}
}
打印游戏界面,因为游戏界面是以二维数组建立的,所以打印时也是二位数组的打印方式。
void ShowBoard(char board[][COLS], int rows, int cols)
{
int i = 0;
int j = 0;
p