예제 #1
0
def get_match_team(formation: List[Formation], verbose: bool = True):
    db = PlayerSimpleDbConnect()
    used_players = []
    selected_players = []

    player_count = 0
    for f in formation:
        player_count += f.quantity
        players = db.get_best_players(f.position,
                                      f.quantity + len(selected_players))
        for p in players:
            player = Player.convert_from_tuple(p)
            try:
                used_players.index(player.id)
            except:
                player.my_pos = f.position.upper()
                used_players.append(player.id)
                selected_players.append(player)
                if len(used_players) == player_count:
                    break

    if verbose:
        for p in selected_players:
            print('%s - %s, %s' % (p.my_pos, p.name, p.bpos))

    return selected_players
예제 #2
0
def get_best_players_by_skill(skill: str, min_value: int = 15, verbose: bool = True):
    db = PlayerSimpleDbConnect()
    selected_players = db.get_best_players_by_skill(skill, min_value)
    i = 1
    result = []
    for p in selected_players:
        player = Player.convert_from_tuple(p)
        result.append(player)
        if verbose:
            print('%.2d. %s, %s, %s: %s' % (i, player.name, player.bpos, skill, player.__getattribute__(skill)))
        i += 1
    return result
예제 #3
0
def get_best_players_for_position(position: str,
                                  players_number: int = 5,
                                  verbose: bool = True):
    db = PlayerSimpleDbConnect()
    selected_players = db.get_best_players_by_position(position,
                                                       players_number)
    result = []
    for p in selected_players:
        player = Player.convert_from_tuple(p)
        result.append(player)
        if verbose:
            print('%s %s' % (player.name, player.bpos))
    return result
예제 #4
0
def get_player_with_potential(min_talent: float = 3.5,
                              min_teamwork: int = 10,
                              min_consistency: int = 10,
                              max_age: int = None,
                              verbose: bool = True):
    db = PlayerSimpleDbConnect()
    players = db.get_players_with_potential(min_talent, min_teamwork,
                                            min_consistency, max_age)
    if verbose:
        print('players with potential: %d' % len(players))
    result = []
    for p in players:
        player = Player.convert_from_tuple(p)
        result.append(player)
        if verbose:
            print(
                '%s (%s)\n\ttalent: %.1f\n\tteamwork: %d\n\tconsistency: %d' %
                (player.name, player.bpos, player.talent, player.teamwork,
                 player.consistency))
    return result
예제 #5
0
def get_team_stats(max_age: int = None, verbose: bool = False):
    max_age = 99 if max_age is None else max_age
    db = PlayerSimpleDbConnect(None, False)
    players = tuple(
        map(lambda p: Player.convert_from_tuple(p),
            db.get_current_all_players()))
    players = tuple(filter(lambda p: p.age <= max_age, players))
    players_salary = get_players_salary(players, max_age, verbose)
    players_salary_avg = get_players_salary_avg(players, max_age, verbose)
    players_age_stats = get_players_age_stats(players, max_age, verbose)
    players_count = len(players)
    if verbose:
        print('==========')
        print('players count: %d, max age: %d' % (players_count, max_age))
        print('players salary: %d, max age: %d' % (players_salary, max_age))
        print('players salary avg: %.2f, max age: %d' %
              (players_salary_avg, max_age))
        print('players age avg: %.2f, max age: %d' %
              (players_age_stats[0], max_age))
        print('players age min: %d, max age: %d' %
              (players_age_stats[1], max_age))
        print('players age max: %d, max age: %d' %
              (players_age_stats[2], max_age))
    return players_count, players_salary, players_salary_avg