📄 maze.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 9
void bl(int **a,int i,int j);
void tl(int **a,int i,int j);
void dy(int **a,int i,int j);
void main()
{ int hang,lie,**ufo,i,j;
printf("输入雷区的行,列:");
scanf("%d,%d",&hang,&lie);
ufo=(int**)malloc(sizeof(int*)*hang);
for(i=0;i<hang;i++)
ufo[i]=(int*)malloc(sizeof(int)*lie);
for(i=0;i<hang;i++)
for(j=0;j<lie;j++)
ufo[i][j]=0;
bl(ufo,hang,lie);
tl(ufo,hang,lie);
dy(ufo,hang,lie);
}
void bl(int **a,int i,int j)
{ int t,p,m,n;
srand(time(NULL));
printf("输入雷数:");
scanf("%d",&p);
for(t=0;t<p;t++)
{ m=rand()%i;
n=rand()%j;
if(a[m][n]==N)
{ t--;
continue;
}
a[m][n]=N;
}
}
void tl(int **a,int i,int j)
{ int m,n,p,q;
for(p=0;p<i;p++)
for(q=0;q<j;q++)
if(a[p][q]!=N)
for(m=p-1;m<=p+1;m++)
for(n=q-1;n<=q+1;n++)
if(m>=0&&m<i&&n>=0&&n<j&&a[m][n]==N)
a[p][q]++;
}
void dy(int **a,int i,int j)
{ int m,n;
for(m=0;m<i;m++)
{ for(n=0;n<j;n++)
if(a[m][n]==0)
printf("%3c",34);
else if(a[m][n]==N)
printf("%3c",15);
else
printf("%3d",a[m][n]);
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -