前言
为了复习C语言的语法嘛,就简单的写了一下扫雷这样一个小游戏,完全在命令行窗口运行。思路也比较简单,采用数组来模拟棋盘。一个用来模拟地雷的分布的数组。一个用来打印玩家开始看到的数组。在选择坐标后展开周围的地方。判断未展开的格子数与地雷数是否相等。结束游戏。
简单的初始界面
简单的一个初始界面,用来选择开始游戏和退出。也可以在这里在后续加上难度选择等等功能。
void ShowMenu()
{
printf("*********************************\n");
printf("*********************************\n");
printf("**********输入1 开始游戏*********\n");
printf("**********输入0 退出游戏*********\n");
printf("*********************************\n");
printf("*********************************\n");
printf("\n");
printf("\n");
printf("\n");
printf(" 请输入:\n");
}
制作棋盘和布雷
棋盘采用二维数组来构成,为了保证游戏可以重复开始,在每次开始时都要对数组进行初始化,然后随机布“雷”。为了方便在接下来扫描展开位置周围是否有“雷”。我们将数组全部初始化为0,将“雷”标记为1。这样就可以布置好地图。
void InitMap()
{
int count = 0;
for (int i = 0; i <= ROW; i++)// 初始化地图
for (int j = 0; j <= COLUMN; j++)
{
map[i][j] = 0;
show_map[i][j] = '*';
}
while (count != BANG_NUMBER) //埋雷
{
int x = rand() % ROW + 1;
int y = rand() % COLUMN + 1;
if (map[x][y] != 1)
{
map[x][y] = 1;
++count;
}
}
}
void Show_BangMap()
{
system("CLS");
printf("*********************************\n");
printf("*********************************\n");