请用c++写一个扫雷代码
时间: 2023-03-14 07:02:55 浏览: 29
#include <stdio.h>int main(){
int row, col, mine;
int arr[row][col]; printf("请输入行数和列数:");
scanf("%d %d", &row, &col);
printf("请输入地雷数:");
scanf("%d", &mine); // 初始化地图
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
arr[i][j] = 0;
}
} // 随机设置地雷
for (int i = 0; i < mine; i++)
{
int x = rand() % row;
int y = rand() % col;
if (arr[x][y] == 0)
{
arr[x][y] = 1;
}
else
{
i--;
}
} // 标记周围地雷
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
int count = 0;
if (arr[i][j] == 0)
{
// 上
if (i > 0 && arr[i - 1][j] == 1)
{
count++;
}
// 下
if (i < row - 1 && arr[i + 1][j] == 1)
{
count++;
}
// 左
if (j > 0 && arr[i][j - 1] == 1)
{
count++;
}
// 右
if (j < col - 1 && arr[i][j + 1] == 1)
{
count++;
}
// 左上
if (i > 0 && j > 0 && arr[i - 1][j - 1] == 1)
{
count++;
}
// 右上
if (i > 0 && j < col - 1 && arr[i - 1][j + 1] == 1)
{
count++;
}
// 左下
if (i < row - 1 && j > 0 && arr[i + 1][j - 1] == 1)
{
count++;
}
// 右下
if (i < row - 1 && j < col - 1 && arr[i + 1][j + 1] == 1)
{
count++;
}
arr[i][j] = count;
}
}
} // 打印地图
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
} return 0;
}