//program to generate som live and dead cells #include #include void generate(int a[12][12]); int main() { int a[12][12],temp[12][12],stable=1;//to make an oouter layer of dead cells i copnsidered the size as 11x11 instead of 10x10 int i,j,k; for(i=0;i<11;i++) { //denote dead cells with 0 and live cells with 1 a[0][i]=0; a[11][i]=0; a[i][0]=0; a[i][11]=0; } for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { a[i][j]=rand()%2; } } for(i=1;i<=10;i++) { printf("\n"); for(j=1;j<=10;j++) printf("%d\t",a[i][j]); } for(k=1;k<=50;k++) { stable=1; printf("\n generation %d is \n",k); for(i=0;i<=11;i++) { //printf("\n"); for(j=0;j<=11;j++) temp[i][j]=a[i][j]; } generate(a); for(i=0;i<12;i++) { for(j=0;j<12;j++) { if(temp[i][j]!=a[i][j]) stable=0; } } if(stable) { printf("\nstable\n"); break; } } } void generate(int a[12][12]) { int l=0,d=0,i,j;// l for live neighbours and d for dead neighbours for(i=1;i<=10;i++) { l=0;d=0; for(j=1;j<=10;j++) { if(a[i-1][j-1]==0) d++; else l++; if(a[i-1][j]==0) d++; else l++; if(a[i-1][j+1]==0) d++; else l++; if(a[i][j-1]==0) d++; else l++; if(a[i][j+1]==0) d++; else l++; if(a[i+1][j-1]==0) d++; else l++; if(a[i+1][j]==0) d++; else l++; if(a[i+1][j+1]==0) d++; else l++; if(a[i][j]==1 && (l<2 || l>3)) a[i][j]=0; else if(a[i][j]==1 && (l==2 || l==3)) a[i][j]=1; else if(a[i][j]==0 && l==3) a[i][j]=1; } } for(i=1;i<=10;i++) { printf("\n"); for(j=1;j<=10;j++) printf("%d\t",a[i][j]); } }