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
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
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
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
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