Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void tamplo(int n, int m, int **pa);
int anoigma(int a, int b, int **pa);
int main(int argc, char *argv[])
{
int i,j,n,m,o,p,a,b,r1,r2,k;
int **pa=NULL;
printf("Dwste tis diastaseis tou paixnidiou n x m\n");
printf("Prosoxh, to tamplo mporei na exei megethos to poly 24x30\n");
scanf("%d%d", &n,&m);
printf("Epilxte to epipedo duskolias tou paixnidiou\n");
printf("Pathste 1 gia eukolo, 2 gia metro, 3 gia duskolo kai 4 gia akatorthoto\n");
scanf("%d", &o);
if(o==1)
{
p=m*n/8;
}
if(o==2)
{
p=m*n/7;
}
if(o==3)
{
p=m*n/6;
}
if(o==4)
{
p=m*n/5;
}
pa=(int**)calloc(n, sizeof(int*)); //desmeush mnhmhs gia dimiourgia 2d pinaka
for(i=0;i<n;i++)
{
pa[i]=(int*)calloc(m, sizeof(int));
}
tamplo(n,m,pa);
printf("dwste tis syntetagmenes tou tetragwnou pou thelete na anoixete\n");
scanf("%d%d", &a,&B);
a=a-1;
b=b-1;
pa[a][b]=9;//9 antiprosopeyei ta anoixta tetragvna poy den periexoyn kati
srand(time(NULL));
for(i=0;i<p;i++)
{
do
{
r1=rand()%n;
r2=rand()%m;
}while(r1==a && r2==B); //wste na mhn yparxei narkh sto tetragwnw pou epelekse
pa[r1][r2]=10;//to 10 antiprosopevei tis narkes
}
k=anoigma(a,b,pa);
printf("%s%d\n", "ayto einai to k:", k);
tamplo(n,m,pa);
for(i=0;i<n;i++)
{
free(pa[i]);
}
free(pa);
system("PAUSE");
return 0;
}
int anoigma(int a, int b, int **pa)
{
int i,j,k=0,narkes=0;
for(i=a-1;i<a+2;i++)
{
for(j=b-1;j<b+2;j++)
{
if(pa[i][j]==1)
{
narkes=narkes+1;
}
}
}
if(narkes==0)
{
pa[a][b]=9;
}
else
{
pa[a][b]=narkes;
}
k=k+1;
return k;
}
void tamplo(int n, int m, int **pa)
{
int i,j;
if(m<10)
{
printf(" ");
for(j=0;j<m;j++)
{
printf("%s%d", " ", j+1);
}
printf("\n");
printf("-");
for(j=0;j<m+1;j++)
{
printf("--");
}
printf("\n");
}
else
{
printf(" ");
for(j=0;j<9;j++)
{
printf("%s%d", " ", j+1);
}
for(j=0;j<m-9;j++)
{
printf("%s%d", " ", j+10);
}
printf("\n");
printf("---");
for(j=0;j<m;j++)
{
printf("---");
}
printf("\n");
}
for(i=0;i<n;i++)
{
if(i<9)
{
printf("%s%d%s", " ", i+1, "|");
}
else
{
printf("%d%s", i+1, "|");
}
for(j=0;j<m;j++)
{
if(pa[i][j]==0)
{
if(m<10)
{
printf(" #");
}
else
{
printf(" #");
}
}
if(pa[i][j]==9)
{
if(m<10)
{
printf(" .");
}
else
{
printf(" .");
}
}
if(pa[i][j]!=0 && pa[i][j]!=9)
{
if(m<10)
{
printf("%s%d", " ", pa[i][j]);
}
else
{
printf("%s%d", " ", pa[i][j]);
}
}
}
printf("\n");
}
}