| class Game(): | |
| """ | |
| This class specifies the base Game class. To define your own game, subclass | |
| this class and implement the functions below. This works when the game is | |
| two-player, adversarial and turn-based. | |
| Use 1 for player1 and -1 for player2. | |
| See othello/OthelloGame.py for an example implementation. | |
| """ | |
| def __init__(self): | |
| pass | |
| def getInitBoard(self): | |
| """ | |
| Returns: | |
| startBoard: a representation of the board (ideally this is the form | |
| that will be the input to your neural network) | |
| """ | |
| pass | |
| def getBoardSize(self): | |
| """ | |
| Returns: | |
| (x,y): a tuple of board dimensions | |
| """ | |
| pass | |
| def getActionSize(self): | |
| """ | |
| Returns: | |
| actionSize: number of all possible actions | |
| """ | |
| pass | |
| def getNextState(self, board, player, action): | |
| """ | |
| Input: | |
| board: current board | |
| player: current player (1 or -1) | |
| action: action taken by current player | |
| Returns: | |
| nextBoard: board after applying action | |
| nextPlayer: player who plays in the next turn (should be -player) | |
| """ | |
| pass | |
| def getValidMoves(self, board, player): | |
| """ | |
| Input: | |
| board: current board | |
| player: current player | |
| Returns: | |
| validMoves: a binary vector of length self.getActionSize(), 1 for | |
| moves that are valid from the current board and player, | |
| 0 for invalid moves | |
| """ | |
| pass | |
| def getGameEnded(self, board, player): | |
| """ | |
| Input: | |
| board: current board | |
| player: current player (1 or -1) | |
| Returns: | |
| r: 0 if game has not ended. 1 if player won, -1 if player lost, | |
| small non-zero value for draw. | |
| """ | |
| pass | |
| def getCanonicalForm(self, board, player): | |
| """ | |
| Input: | |
| board: current board | |
| player: current player (1 or -1) | |
| Returns: | |
| canonicalBoard: returns canonical form of board. The canonical form | |
| should be independent of player. For e.g. in chess, | |
| the canonical form can be chosen to be from the pov | |
| of white. When the player is white, we can return | |
| board as is. When the player is black, we can invert | |
| the colors and return the board. | |
| """ | |
| pass | |
| def getSymmetries(self, board, pi): | |
| """ | |
| Input: | |
| board: current board | |
| pi: policy vector of size self.getActionSize() | |
| Returns: | |
| symmForms: a list of [(board,pi)] where each tuple is a symmetrical | |
| form of the board and the corresponding pi vector. This | |
| is used when training the neural network from examples. | |
| """ | |
| pass | |
| def stringRepresentation(self, board): | |
| """ | |
| Input: | |
| board: current board | |
| Returns: | |
| boardString: a quick conversion of board to a string format. | |
| Required by MCTS for hashing. | |
| """ | |
| pass | |