@abstractmethod
def apply(self, board):
    '\n        Apply a move to a board and retrieve the board produced by the move.\n\n        Parameters\n        ----------\n        board\n            The board to apply the move to.\n\n        Returns\n        -------\n        Board\n            A new board that will be produced after applying this move.\n        '
    return board
Apply a move to a board and retrieve the board produced by the move.

Parameters
----------
board
    The board to apply the move to.

Returns
-------
Board
    A new board that will be produced after applying this move.
@abstractmethod
def apply(self, board):
    '\n        Apply a move to a board and retrieve the board produced by the move.\n\n        Parameters\n        ----------\n        board\n            The board to apply the move to.\n\n        Returns\n        -------\n        Board\n            A new board that will be produced after applying this move.\n        '
    return board