写一个扫雷c语言标记函数
时间: 2024-11-04 16:16:16 浏览: 28
在C语言中,编写一个简单的扫雷游戏的标记函数通常会涉及到二维数组来表示雷区、计数器表示每个格子周围已知的雷的数量以及用户交互来标记位置。这里是一个基本的示例,假设我们有一个8x8的雷区:
```c
#include <stdio.h>
// 定义雷区结构体,包含一个值(0代表安全,-1代表雷)
typedef struct {
int value;
} Cell;
// 雷区数组
Cell board[8][8];
void mark(int row, int col) {
if (board[row][col].value == -1) { // 如果该位置是雷,不做标记并提示错误
printf("当前位置有地雷,请重新选择!\n");
return;
}
board[row][col].value = 0; // 标记为已知安全区域
printf("(%d,%d)标记为安全。\n", row, col);
// 检查并标记周围未标记过的相邻方格
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
if (i != 0 || j != 0) { // 排除自身
if (row + i >= 0 && row + i < 8 && col + j >= 0 && col + j < 8) {
if (board[row+i][col+j].value == -1) {
mark(row+i, col+j); // 递归标记周围的雷
} else {
board[row+i][col+j].value++; // 增加计数器
}
}
}
}
}
}
阅读全文