[C] syntaxhighlighter_viewsource syntaxhighlighter_copycode //C语言-精简扫雷游戏原理
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int arr[10][10]={0};//定义二维数组表示扫雷区域的大小
int row,col;//行与列的循环变量
int count=0;//统计地雷数量
int row1,col1;//九宫格循环变量
srand(time(0));//随机种子,与随机函数rand函数是成对,每次执行的结果不一样
do
{
row=rand()%10;//行中从0-9的随机数
col=rand()%10;//列中从0-9的随机数
if(arr[row][col]==0)
{
arr[row][col]=-1;//标记为有地雷
count++;
}
}while(count<10);//从0-9产生10个地雷
for(row=0;row<10;row++)//行的遍历
{
for(col=0;col<=9;col++)//列的遍历
{
if(arr[row][col]!= -1){
count = 0;
for(row1 = row - 1;row1<= row+1;row1++){
for(col1 = col -1;col1 <= col +1;col1++){//2
if(((row1 >= 0&&row1 < 10)&&(col1>=0&&col1<=9))&&arr[row1][col1]==-1){
count++;
}
}
}
if(count==0)
printf("□");
else
printf("%d ",arr[row][col] =count);
}else{
printf("■");
}
}
printf("\n");
}
return 0;
}
|