Beispiel #1
0
    /// <summary>
    /// Performs actual calculation of the nemesis Score of v (for u; given distance d_uv)
    /// </summary>
    /// <param name="u"></param>
    /// <param name="v"></param>
    /// <param name="d_uv"></param>
    /// <returns></returns>
    public static int ComputeNemesisScore_Main(Profile u, Profile.NemesisEntry v, float d_uv)
    {
        float u_played  = u.games_won + u.games_lost;
        float v_played  = v.won_against + v.lost_against;
        float u_winrate = (float)u.games_won / u_played;
        float v_winrate = (float)v.won_against / v_played;

        float r_uv = v_played / u_played;

        return(Mathf.RoundToInt(d_uv * ((1 - r_uv) * (1 - v_winrate) + r_uv * u_winrate) * 1000f));
    }
Beispiel #2
0
 public static int ComputeNemesisScore(Profile u, Profile.NemesisEntry v)
 {
     return(ComputeNemesisScore_Main(u, v, 1));
 }