def get_next_pair(engine: SimpleEngine, node: ChildNode, winner: Color) -> Optional[NextMovePair]: pair = get_next_move_pair(engine, node, winner, pair_limit) if node.board().turn == winner and not is_valid_attack(pair, engine): logger.debug("No valid attack {}".format(pair)) return None return pair
def get_next_move(engine: SimpleEngine, node: GameNode, winner: Color) -> Optional[NextMovePair]: board = node.board() pair = get_next_move_pair(engine, node, winner, get_move_limit) logger.debug("{} {} {}".format("attack" if board.turn == winner else "defense", pair.best, pair.second)) if board.turn == winner and not is_valid_attack(pair): logger.debug("No valid attack {}".format(pair)) return None if board.turn != winner and not is_valid_defense(pair): logger.debug("No valid defense {}".format(pair)) return None return pair