- 思路
- 效果
- 代码
思路参考链接:链接
链接中使用的是-1,2作为状态标记
我的代码中使用的是2,3作为状态标记
2:标志着从0 -> 1
3:标志着从1 -> 0
int counter(int** board, int rows, int columns, int x, int y){
int count=0;
int t[]={-1,0,1};
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if((t[i]!=0 || t[j]!=0) && (x+t[i]>=0 && x+t[i]=0 && y+t[j]
count+=board[x+t[i]][y+t[j]]%2;
}
}
}
return count;
}
void gameOfLife(int** board, int boardSize, int* boardColSize){
int i,j,count;
for(i=0;i
for(j=0;j
count=counter(board,boardSize,boardColSize[0],i,j);
if(board[i][j]==1 && (count<2 || count>3)) board[i][j]=3;
else if(board[i][j]==0 && count==3){board[i][j]=2;}
}
}
for(i=0;i
for(j=0;j
if(board[i][j]==2) board[i][j]=1;
if(board[i][j]==3) board[i][j]=0;
}
}
}



