#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){srand((unsigned)time(NULL));int map[10][10]={0};for(int i =0; i <10;)//随机定义10个雷{int x =rand()%10;int y =rand()%10;if(map[x][y]==-1){continue;}
map[x][y]=-1;
i++;}//设置雷附近的数字for(int i =0; i <10; i++){for(int j =0; j <10; j++){if(map[i][j]==-1){for(int x = i -1; x <= i +1; x++){for(int y = j-1; y <= j+1; y++){if(x>=0&&x<=10&&y>=0&&y<=10&&map[x][j]!=-1){
map[x][y]++;}}}}}}//掩码for(int i =0; i <10; i++){for(int j =0; j <10; j++){
map[i][j]+=20;}}while(1){int x, y;int num=0;//被掩码的个数for(int i =0; i <10; i++){for(int j =0; j <10; j++){if(map[i][j]>=19&& map[i][j]<=29){printf(" * ");}else{printf("%2d ", map[i][j]);}}printf("\n");}printf("请输入要打开位置的坐标x,y:");scanf_s("%d%d",&x,&y);if(map[x][y]>=19&& map[x][y]<=29)//如果所输入的位置是掩码位置就将掩码打开{
map[x][y]-=20;if(map[x][y]==-1)//如果打开的是雷,就结束游戏{printf("\n游戏结束,你输了!!!\n");break;}}for(int i =0; i <10; i++){for(int j =0; j <10; j++){if(map[x][y]>=19&& map[x][y]<=29){
num++;}}}if(num ==10)//雷全部被排了出来{printf("\n游戏结束,恭喜你赢了!!!\n");}system("cls");}return0;}