Untitled

 avatar
unknown
plain_text
a year ago
2.2 kB
4
Indexable
# Define factors and weights (for demonstration purposes)
factors = {
    'age': {'weight': 0.1, 'max_value': 30},
    'position': {'weights': {'forward': 1.5, 'midfielder': 1.2, 'defender': 1.0, 'goalkeeper': 0.8}},
    'club_reputation': {'weights': {'top': 1.5, 'mid': 1.0, 'low': 0.5}},
    'contract_length': {'weight': 0.2},
    'performance': {'weight': 0.3},
    'international_caps': {'weight': 0.5},
    'injury_history': {'weight': -0.2}
}

# Example player data
player = {
    'age': 25,
    'position': 'forward',
    'club_reputation': 'top',
    'contract_length': 4,  # in years
    'performance_score': 85,  # out of 100
    'international_caps': 30,
    'injury_risk_score': 0.1  # example, lower is better (less risk)
}

# Function to calculate player value
def calculate_player_value(player_data, factors):
    total_value = 0.0
    
    # Age factor
    age_factor = factors['age']['weight'] * (factors['age']['max_value'] - player_data['age'])
    total_value += age_factor
    
    # Position factor
    position_factor = factors['position']['weights'].get(player_data['position'], 1.0)
    total_value += position_factor
    
    # Club reputation factor
    club_rep_factor = factors['club_reputation']['weights'].get(player_data['club_reputation'], 1.0)
    total_value += club_rep_factor
    
    # Contract length factor
    contract_factor = factors['contract_length']['weight'] * player_data['contract_length']
    total_value += contract_factor
    
    # Performance factor
    performance_factor = factors['performance']['weight'] * (player_data['performance_score'] / 100)
    total_value += performance_factor
    
    # International caps factor
    international_caps_factor = factors['international_caps']['weight'] * (player_data['international_caps'] / 50)
    total_value += international_caps_factor
    
    # Injury history factor
    injury_factor = factors['injury_history']['weight'] * player_data['injury_risk_score']
    total_value += injury_factor
    
    return total_value

# Calculate player's value
player_value = calculate_player_value(player, factors)
print(f"The estimated value of the player is: {player_value:.2f} million euros")
Editor is loading...
Leave a Comment