def evaluate(self, board: chess.Board): epd = board.epd() if epd in self.cache: policy, value = self.cache[epd] return policy, value else: policy, value = self.net.evaluate(board) self.cache[epd] = [policy, value] return policy, value
def _evaluate_board(board: chess.Board): """Simple valuation function. Just sums the piece values. """ pieces = board.epd().split()[0] piece_values = { 'p': 1, 'n': 3, 'b': 3.25, 'k': 10000, 'q': 9, 'r': 5, 'P': -1, 'N': -3, 'B': -3.25, 'K': -10000, 'Q': -9, 'R': -5 } return sum(piece_values.get(c, 0) for c in pieces)