#include"Game.h"
void Menu()//打印菜单
{
printf("* * * * * * * * * * * * *\n");
printf("* * * 1 开 始 游 戏 * * *\n");
printf("* * * 0 结 束 游 戏 * * *\n");
printf("* * * * * * * * * * * * *\n");
}
void Game()//游戏主体
{
char Mine[ROW][COL] = { 0 };//创建数组
char Show[ROW][COL] = { 0 };
Init(Mine, ROW, COL, '0');//数组初始化
Init(Show, ROW, COL, '*');
MineDep(Mine, row, col);//布置雷
Find(Mine, Show, ROW, COL);//寻找雷
}
void Init(char arr[ROW][COL], int Row, int Col, char c)//初始化数组
{
for (int i = 0; i < Row; i++)
{
for (int j = 0; j < Col; j++)
{
arr[i][j] = c;
}
}
}
void MineDep(char arr[ROW][COL], int Row, int Col)//布置雷
{
srand((unsigned int)time(NULL));
int count = Easy;
while (count)
{
int x = rand() % Row + 1;
int y = rand() % Row + 1;
if (arr[x][y] == '0')
{
arr[x][y] = '1';
count--;
}
}
}
void Print(char arr[ROW][COL], int Row, int Col)//打印棋盘
{
printf("- - - 扫 雷 游 戏 - - -\n");
for (int i = 0; i <= Col; i++)
{
printf("%2d", i);
}
printf("\n");
for (int i = 1; i <= Row; i++)
{
printf("%2d", i);
for (int j = 1; j <= Col; j++)
{
printf("%2c", arr[i][j]);
}
printf("\n");
}
printf("- - - - - - - - - - - -\n");
}
void Find(char arr1[ROW][COL], char arr2[ROW][COL], int Row, int Col)//寻找雷
{
int x = 0, y = 0;
int temp = 0;
while (1) {
Print(arr2, row, col);
printf("输入要排查的坐标==>");
scanf("%d %d", &x, &y);
system("cls");
if ((x > 0 && x < 10) && (y > 0 && y < 10))
{
if (arr1[x][y] == '1')
{
printf("你踩到地雷了!!!\n地雷排布图\n");
Print(arr1, row, col);
break;
}
else
{
int sum = 0;
for (int i = x - 1; i <= x + 1; i++)
{
for (int j = y - 1; j <= y + 1; j++)
{
sum += arr1[i][j] - '0';
}
}
arr2[x][y] = '0' + sum;
temp++;
}
}
else
{
printf("坐标不存在,请重新输入\n");
}
if (temp == row * col - Easy)
{
printf("扫雷成功!!!\n");
break;
}
}
}