一、游戏规则
在一个棋盘上,根据自己选择的位置来判断该位置是否有雷。有雷,游戏结束,无雷,显示附近区域的雷的个数,并且继续游戏,直到游戏结束。
程序规则:9*9棋盘,二维数组实现。‘0’——没雷,‘1’——有雷。
二、思路
1.创建一个用户界面;
2.二维数组定义一个9*9棋盘;
3.定义实际操作棋盘,为了在实现埋雷,扫雷,计数雷位置不超出定义棋盘位置,将实际操作棋盘大小定义为11*11;
4.初始化棋盘,9*9棋盘初始化为“*”,实际操作棋盘初始化为“0”;
5.埋雷,初始10个,随机数生成雷的位置,埋雷位置赋值为‘1’;
6.开始游戏,碰到雷或排除全部雷,游戏结束。
三、各功能实现代码
为了方便管理操作,将程序分成三个文件,testc.文件,game.h文件和game.c文件
1.创建用户操作界面
test.c
void menu()
{
printf("***************************\n");
printf("**********1.play***********\n");
printf("**********0.exit***********\n");
printf("***************************\n");
}
void test()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏");
break;
default:
printf("输入错误,请重新输入!");
break;
}
} while (input);
}
2.初始化棋盘
game.h
#define ROWS ROW+2
#define COLS COL+2
//初始化棋盘
void InitBoard(char board[ROWS][COLS], int rows, int cols,char set);
game.c
void InitBoard(char board[ROWS][COLS], int rows, int cols, char set)
{
int i = 0;
for (i = 0; i < rows; i++)
{
int j = 0;
for (j = 0; j < cols; j++)
{
board[i][j] = set;
}
}
}
test.c
//初始化棋盘
I