#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
# define MAX_ROW 9
# define MAX_COL 9
# define MAX_MINE_COUNT 15
char show_map[MAX_ROW][MAX_COL]; // 每个地雷周围有几颗雷
char mine_map[MAX_ROW][MAX_COL]; // 雷的位置
void init();
void printmap(char map[MAX_ROW][MAX_COL]);
void updatemap(char show_map[MAX_ROW][MAX_COL], char mine_map[MAX_ROW][MAX_COL], int row, int col);
void game();
int main()
{
game();
system("pause");
return 0;
}
void game()
{
init();
int count = 0;
while (1)
{
printmap(show_map);
printf("请输入要翻开的位置(row,col):");
int row = 0;
int col = 0;
scanf("%d %d", &row, &col);
if (row < 0 || row >= MAX_ROW || col < 0 || col >= MAX_COL)
{
printf("输入有误,重新输入!");
continue;
}
if (show_map[row][col] != '*')
{
printf("该位置已经翻开,重新输入");
continue;
}
if (mine_map[row][col] == '1')
{
printmap(mine_map);
printf("Game Over");
break;
}
if (count == MAX_COL * MAX_ROW - MAX_MINE_COUNT)
{
printmap(mine_map);
printf("你赢了!\n");
break;
}
updatemap(show_map, mine_map, row, col);
}
}
// 地图初始化
void init()
{
for (int row = 0; row < MAX_ROW; row++)
{
for (int col = 0; col < MAX_COL; col++)
{
show_map[row][col] = '*';
}
}
for (int row = 0; row < MAX_ROW; row++)
{
for (int col = 0; col < MAX_COL; col++)
{
mine_map[row][col] = '0';
}
}
srand((unsigned int)time(0));
int MINE_COUNT = 0;
while (1)
{
int row = rand() % MAX_ROW;
int col = rand() % MAX_COL;
if (mine_map[row][col] == '1')
{
continue;
}
mine_map[row][col] = '1';
MINE_COUNT++;
if (MINE_COUNT == MAX_MINE_COUNT)
{
break;
}
}
return ;
}
// 打印地图
void printmap(char map[MAX_ROW][MAX_COL])
{
for (int row = 0; row < MAX_ROW; row++)
{
for (int col = 0; col < MAX_COL; col++)
{
printf("%c ", map[row][col]);
}
printf("\n");
}
return ;
}
// 更新地图
void updatemap(char show_map[MAX_ROW][MAX_COL], char mine_map[MAX_ROW][MAX_COL], int row, int col)
{
int count = 0;
for (int r = row - 1; r <= row + 1; r++)
{
for (int c = col - 1; c <= col + 1; c++)
{
if (r == row && c == col)
{
continue;
}
if (r < 0 || r >= MAX_ROW || c < 0 || c >= MAX_COL)
{
continue;
}
if (mine_map[r][c] == '1')
{
count++;
}
}
}
show_map[row][col] = '0' + count;
}
扫雷游戏
最新推荐文章于 2024-04-20 12:07:17 发布