c语言 扫雷游戏(才做了三分之一)
作者:互联网
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<random>
#define ROW 10
#define COL 10
#define NUM 10
int map[ROW+2][COL+2];
//游戏初始化
void GameInit() {
srand((unsigned int)time(NULL));
//什么是雷?-1 有几个雷?10 雷在哪里?随机放在二维数组
for (int i = 0; i < 10; i++) {//循环了NUM次
int r = rand() % ROW+1;
int c = rand() % COL+1;
if (map[r][c] != -1) {
map[r][c] = -1;
}
i++; //每产生一个雷 循环次数+1 10次才可以结束
}
//根据雷的分布 在游戏区去填充数组的[非雷元素]
//只是有九宫格的
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (map[i][j] != -1)//所有不为雷的元素
{
//假设找到一个元素,元素的下标是 i,j;
//遍历九宫格
for (int m = i - 1; m <=i + 1; m++) {
for (int n = j - 1; n <= j + 1; n++) {
if (map[m][n] == -1) { //找到一个雷
map[i][j]++; //这个元素++
}
}
}
}
}
}
}
void print() {
//只打印游戏区
for (int i = 1; i < ROW; i++) {
for (int j =1; j < COL; j++) {
if (map[i][j] == -1) {
printf("#");
}
else if (map[i][j] >= 0 && map[i][j] <= 8) {
if (map[i][j] == 0) {
printf(" ");
}
else
printf("&d\n", map[i][j]);
}
printf("%2d\n", map[i][j]);
}
}
}
int main() {
print();
GameInit();
return 0;
}
标签:map,游戏,10,int,三分之一,++,扫雷,COL,ROW 来源: https://www.cnblogs.com/Ssinoo/p/10922040.html