def get_available_moves(self, player):
    '\n        For the specified player, get the list of all allowed moves that are applicable\n        to this board according to the game rules.\n        '
    result = []
    capture_sequences = self.get_capture_sequence_candidates(player)
    if (not capture_sequences):
        for source in self.get_player_squares(player):
            result.extend([ForwardMove(source, destination) for destination in self.get_free_movement_destinations(source)])
    else:
        max_seq_length = max((len(seq) for seq in capture_sequences))
        result.extend([(ComboCaptureMove(seq) if (len(seq) > 1) else seq[0]) for seq in capture_sequences if (len(seq) == max_seq_length)])
    return result
For the specified player, get the list of all allowed moves that are applicable
to this board according to the game rules.
def get_available_moves(self, player):
    '\n        For the specified player, get the list of all allowed moves that are applicable\n        to this board according to the game rules.\n        '
    result = []
    capture_sequences = self.get_capture_sequence_candidates(player)
    if (not capture_sequences):
        for source in self.get_player_squares(player):
            result.extend([ForwardMove(source, destination) for destination in self.get_free_movement_destinations(source)])
    else:
        max_seq_length = max((len(seq) for seq in capture_sequences))
        result.extend([(ComboCaptureMove(seq) if (len(seq) > 1) else seq[0]) for seq in capture_sequences if (len(seq) == max_seq_length)])
    return result