sequences rowlst append(board[ ][ ] self items append(rowlst the getitem method is used to index into the board it should return row of the board that row itself is indexable (it is just listso accessing row and column in the board can be written board[row][columnbecause of this method def __getitem__(self,index)return self items[index this method should return true if the two boardsself and otherrepresent exactly the same state def __eq__(self,other)pass this method will mutate this board to contain all dummy turtles this way the board can be reset when new game is selected it should not be used except when starting new game def reset(self)screen tracer( for in range( )for in range( )self items[ ][jgoto(- ,- self items[ ][jdummy( screen tracer( this method should return an integer representing the state of the board if the computer has wonreturn if the human has wonreturn - otherwisereturn def eval(self)pass this method should return true if the board is completely filled up (no dummy turtlesotherwiseit should return false def full(self)pass this method should draw the ' and ' of this board on the screen def drawxos(self)for row in range( )for col in range( )if self[row][coleval(! self[row][colst(self[row][colgoto(col* + ,row* + screen update(because each row is itself list in the board classwe can just use the built-in list class for the rows of the matrix each location in each row of the matrix can hold either an xan oor dummy object the dummy objects are there for convenience and represent an open location in the board the equalevaland full methods are left as an exercise for the student the purpose of each will be described in the next section this copy belongs to 'acha