- 操作方法
- 將代碼復(fù)制到X-Code中編譯成功后將可執(zhí)行文件拖到桌面打開即可玩掃雷游戲。
- 提示
- define N 4 的功能是生成4*4列的雷區(qū)
- 代碼如下
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 4
int a[N][N],b[N][N];
void printfun()
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(b[i][j])
printf("%2d ",a[i][j]);
else printf(" * ");
}
printf("\n");
}
// printf("\n");
}
void printA()
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%2d ",a[i][j]);
}
printf("\n");
}
}
int fun(int i,int j)
{
if(i<0||i==N||j<0||j==N)
return 0;
if(a[i][j]==-1)
return 1;
return 0;
}
int main()
{
int i,j,coordinate,mine,sum,flag;
loop:
mine=0;
sum=N*N-1;
srand((unsigned)time(0));
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(rand()%5==0)
{
a[i][j]=-1;
mine++;
}
else a[i][j]=0;
b[i][j]=0;
}
}
if(mine==0)
{
a[rand()%N][rand()%N]=-1;
mine++;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(a[i][j]==-1)
{
continue;
}
a[i][j]+=fun(i-1,j-1);
a[i][j]+=fun(i-1,j);
a[i][j]+=fun(i-1,j+1);
a[i][j]+=fun(i,j+1);
a[i][j]+=fun(i+1,j+1);
a[i][j]+=fun(i+1,j);
a[i][j]+=fun(i+1,j-1);
a[i][j]+=fun(i,j-1);
}
}
do
{
srand((unsigned)time(0));
i=rand()%N;j=rand()%N;
}while(a[i][j]==-1);
b[i][j]=1;
do
{
flag=0;
do
{
system("clear");
printf(" 地雷個(gè)數(shù):%d\n",mine);
printfun();
if(flag)
printf("\n輸入有誤,重新輸入!\n");
printf("請(qǐng)輸入一個(gè)兩位整數(shù)排雷(如12):");
scanf("%d",&coordinate);
getchar();
flag=1;
}while(coordinate<11||coordinate>N*10+N);
i=coordinate/10-1;
j=coordinate%10-1;
b[i][j]=1;
sum--;
}while(a[i][j]!=-1&&sum!=mine);
printA();
if(a[i][j]==-1)
printf("\n引爆地雷!-1代表地雷!\n");
else
printf("\n掃雷成功!\n");
getchar();
goto loop;
return 0;
}```
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者