请使用c语言中的数组制作一个简单点扫雷
时间: 2024-11-26 10:20:52 浏览: 0
在C语言中创建简单的点阵扫雷游戏,你需要一个二维数组来表示地图(包括已知的地雷和空格),然后通过循环遍历并标记每个位置。以下是一个简化的示例:
```c
#include <stdio.h>
#define ROWS 9 // 地图行数
#define COLS 9 // 地图列数
#define MIN_MINE 10 // 地雷总数
typedef struct {
int value; // 地雷或数字
int revealed; // 是否已揭示
} Cell;
Cell grid[ROWS][COLS]; // 二维数组存放游戏数据
// 初始化地图,随机放置地雷
void init_grid() {
for (int i = 0; i < ROWS * COLS; i++) {
if (i >= MIN_MINE) {
grid[i / COLS][i % COLS].value = -1; // -1表示地雷
} else {
grid[i / COLS][i % COLS].value = 0;
}
}
}
// 检查是否触发地雷,打印提示
void reveal(int x, int y) {
if (grid[x][y].value == -1) {
printf("爆雷了!\n");
} else {
printf("%d", grid[x][y].value); // 显示周围数字
grid[x][y].revealed = 1;
}
}
// 主函数,开始游戏
int main() {
init_grid();
int row, col;
while (1) {
printf("请输入坐标(x, y),输入q退出: ");
scanf("%d%d", &row, &col);
if (row >= 0 && row < ROWS && col >= 0 && col < COLS && !grid[row][col].revealed) {
reveal(row, col);
} else if (row == 'q') {
break;
} else {
printf("无效输入。\n");
}
}
return 0;
}
```
这个例子非常基础,没有包含游戏完整的交互和边界检查。实际的游戏会有更复杂的用户界面和更多的逻辑处理。
阅读全文