I am having problems coding the game of life for an assignment. I can generate my initial matrix and then subsequently add a border of 0's around it to aid in the summation of live/dead cells.

the criteria is:

dead -- 3 live neighbours -- alive

dead -- not 3 live neighbours -- dead

alive-- 2/3 live neighbours -- alive

alive-- not 2/3 live neighbours--dead

i have code outside of main() to calculate the number of dead/live cells

and in main() I have a do loop, which incorporates my initial matrix with the border of 0'sCode:#define A 1000 #define B 1000 /*calculates the state of the cell after each generation*/ int state(int v[A][B],int i,int j) { int k,q,amount=0; /*Counts how many live cells in the neighbourhood*/ for(k=i-1;k<=i+1;k++){ for(q=j-1;q<=j+1;q++){ amount=amount+v[k][q]; } } /*if alive, then die if not 2,3. if dead then remain dead if not 3*/ /*returns a 0 if cell is now dead*/ if((v[i][j]=1 && (amount<2 || amount>3)) || (v[i][j]=0 && (amount<3 || amount>4))) return 0; /*if alive, then remain alive if 2 or 3. if dead then become alive if 3*/ /*returns a 1 if cell is now alive*/ else if((v[i][j]=1 && (amount==2 || amount==3)) || (v[i][j]=0 && amount==3) ) return 1; }

for some (probably obvious reason) I don't seem to be getting the correct output in my final matrix.Code:do { for(i=1;i<=n;i++) { for(j=1;j<=p;j++) { d=state(v,i,j); if(d==0) v[i][j]=0; else if(d==1) v[i][j]=1; } } /*Counts the number of generations down each time one has been programmed*/ generations--; /*Stops the program when the new generations number gets to 0*/ }while(generations!=0);

any help would be much appreciated

thanks Emma