new configuration of organisms based on the rules of the game list is used within evolve(to store the coordinates of live cells in the next generation after iterating over all the cellsthe grid is reconfigured using this list of coordinates this is necessary since the current configuration stored in the game grid cannot be modified with the next generation until the neighbor count has been computed for each cell in the current generation the program also defines several constant variables these are used to specify the grid sizethe number of generations to be createdand the set of initial live cells using constant variables allows for easy modifications to any of these parameters as needed without having to modify other parts of the program of coursethis information could be extracted from the user or text file instead the results of executing the gameoflife py program are illustrated graphically in figure initial configuration st generation nd generation rd generation th generation th generation th generation th generation th generation figure the results of using the gameoflife py program on sample grid configuration configurations after the eighth generation produce two-phase oscillatoralternating between the configuration of the seventh and eighth generations implementation the actual game of life specifies rectangular grid of infinite size when developing computer solution for such problemwe are limited to grids of fixed size the game of life can still be implementedhoweverby using finite size for the grid if the system grows too large where it does not fit into the spaceit can be "playedagainwith larger grid before implementing the lifegrid classwe must decide how the data should be organized and select an appropriate structure the most obvious is the use of two-dimensional array to represent the grid nextwe must decide what values to store in the grid to represent the organismsboth dead and alive any pair of values can be used we are going to use the value to represent the dead cells and the