designing solution the game of life requires the use of grid for storing the organisms life grid adt can be defined to add layer of abstraction between the algorithm for "playingthe game and the underlying structure used to store and manipulate the data define life grid adt life grid is used to represent and store the area in the game of life that contains organisms the grid contains rectangular grouping of cells of finite size divided into rows and columns the individual cellswhich can be alive or deadare referenced by row and column indicesboth of which start at zero lifegridnrowsncols )creates new game grid consisting of nrows and ncols all cells in the grid are set to dead numrows()returns the number rows in the grid numcols()returns the number of columns in the grid configurecoordlist )configures the grid for evolving the next generation the coordlist argument is sequence of -tuples with each tuple representing the coordinates (rcof the cells to be set as alive all remaining cells are cleared or set to dead clearcellrowcol )clears the individual cell (rowcoland sets it to dead the cell indices must be within the valid range of the grid setcellrowcol )sets the indicated cell (rowcolto be alive the cell indices must be within the valid range of the grid islivecellrow,col )returns boolean value indicating if the given cell (rowcolcontains live organism the cell indices must be within the valid range of the grid numliveneighborsrowcol )returns the number of live neighbors for the given cell (rowcolthe neighbors of cell include all of the cells immediately surrounding it in all directions for the cells along the border of the gridthe neighbors that fall outside the grid are assumed to be dead the cell indices must be within the valid range of the grid we now develop program for the game of life using the life grid adt the implementation of the program provided in listing on the next page was developed using top-down design consisting of several functions the main routine creates the game grid and evolves new generations of organisms it relies on two additional functionsdraw(and evolve(the draw(routinethe implementation of which is left as an exerciseprints text-based representation of the game grid the evolve(function generates