void gameOfLife(int** board, int boardRowSize, int boardColSize) { int live,i,j; for(i=0;i<boardRowSize;i++) { for(j=0;j<boardColSize;j++) { live=countLive(board,boardRowSize,boardColSize,i,j); if(board[i][j]==0) { if(live==3) { board[i][j]+=10; } } else { if(live==2||live==3) { board[i][j]+=10; } } } } for(i=0;i<boardRowSize;i++) { for(j=0;j<boardColSize;j++) { board[i][j]/=10; } } return; }
/** * Function: Basic Display Callback Function */ void display() { int i,j,k; int cell; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glRotatef(xRot, 1.0, 0.0, 0.0); glRotatef(yRot, 0.0, 1.0, 0.0); glTranslatef(-0.5, -0.5, -0.5); glBegin(GL_POINTS); for (i = 0; i < LENGTH; i++) for (j = 0; j < WIDTH; j++) for (k = 0; k < HEIGHT; k++) { cell = grid[i][j][k]; if(cell) { setColor(cell); glVertex3f((float)i/LENGTH,(float)j/WIDTH,(float)k/HEIGHT); } } glEnd(); if(counting) countLive(); glFlush(); // Double Buffering glutSwapBuffers(); }