#include int main() { char file_name[20], guess[6]; char Life[15][15]; int ctr=0, ctr2=0; char *g; FILE *fp1; int i, j; int neighbors; printf (\"Enter file_name of initial generation: \"); scanf (\"%s\", file_name); fp1 = fopen(file_name, \"r\"); do { g = fgets (guess, 6, fp1); for(ctr2=0;ctr2<6;ctr2++){ Life[ctr][ctr2]=g[ctr2]; } ctr++; if (g!=NULL) printf (\"%s\", guess); } while (g != NULL); fclose (fp1); printf (\"\ \"); neighbors=0; for (i=0; i<4; i++) { for (j=0; j<4; j++) { if (i==0 && j==0) { if (Life [i+1][j]==\'X\') neighbors ++; if (Life [i][j+1]==\'X\') neighbors ++; if (Life [i+1][j+1]==\'X\') neighbors ++; } if (i==3 && j==0) { if (Life [i-1][j]==\'X\') neighbors ++; if (Life [i-1][j+1]==\'X\') neighbors ++; if (Life [i][j+1]==\'X\') neighbors ++; } if (i==0 && j==3) { if (Life [i][j-1]==\'X\') neighbors ++; if (Life [i+1][j-1]==\'X\') neighbors ++; if (Life [i+1][j]==\'X\') neighbors ++; } if (i==3 && j==3) { if (Life [i][j-1]==\'X\') neighbors ++; if (Life [i-1][j-1]==\'X\') neighbors ++; if (Life [i-1][j]==\'X\') neighbors ++; } if (j==0 && i!=0 && i!=3) { if (Life [i-1][j]==\'X\') neighbors ++; if (Life [i-1][j+1]==\'X\') neighbors ++; if (Life [i][j+1]==\'X\') neighbors ++; if (Life [i+1][j]==\'X\') neighbors ++; if (Life [i+1][j+1]==\'X\') neighbors ++; } if (j==3 && i!=0 && i!=3) { if (Life [i-1][j]==\'X\') neighbors ++; if (Life [i-1][j-1]==\'X\') neighbors ++; if (Life [i][j-1]==\'X\') neighbors ++; if (Life [i+1][j-1]==\'X\') neighbors ++; if (Life [i+1][j+1]==\'X\') neighbors ++; } if (i==0 && j!=0 && j!=3) { if (Life [i][j-1]==\'X\') neighbors ++; if (Life [i][j+1]==\'X\') neighbors ++; if (Life [i+1][j-1]==\'X\') neighbors ++; if (Life [i+1][j]==\'X\') neighbors ++; if (Life [i+1][j+1]==\'X\') neighbors ++; } if (i==3 && j!=0 && j!=3) { if (Life [i][j-1]==\'X\') neighbors ++; if (Life [i][j+1]==\'X\') neighbors ++; if (Life [i-1][j-1]==\'X\') neighbors ++; if (Life [i-1][j]==\'X\') neighbors ++; if (Life [i-1][j+1]==\'X\') neighbors ++; } if (i!=0 && i!=3 && j!=0 && j!=3) { if (Life [i][j+1]==\'X\') neighbors ++; if (Life [i][j-1]==\'X\') neighbors ++; if (Life [i-1][j]==\'X\') neighbors ++; if (Life [i-1][j+1]==\'X\') neighbors ++; if (Life [i-1][j-1]==\'X\') neighbors ++; if (Life [i+1][j]==\'X\') neighbors ++; if (Life [i+1][j+1]==\'X\') neighbors ++; if (Life [i+1][j-1]==\'X\') } neighbors ++; } } for (i=0; i<4; i++) { for (j=0; j<4; j++) { if (Life [i][j]==\' \') { if (neighbors==3) Life [i][j]=\'X\'; else Life [i][j]=\' \'; } if (Life [i][j]==\'X\') { if (neighbors==2 && neighbors==3) Life [i][j]=\'X\'; else Life [i][j]=\' \'; } } } printf (\"The new generation is:\ \"); printf (\"%s\", Life[i][j]); return 0; } Solution #include int main() { char file_name[20], guess[6]; char Life[15][15]; int ctr=0, ctr2=0; char *g; FILE *fp1; int i, j; int neighbors; printf (\"Enter file_name of initial generation: \"); scanf (\"%s\", file_name); fp1 = fopen(file_name, \"r\"); do { g = fgets (guess, 6, fp1); for(ctr2=0;ctr2<.