public EloRatingOutput RankIt(EloRatingInput input) { var victory = input.Victory; double flatScore = Config.FlatScore; double score = Config.Factor; var output = new EloRatingOutput(input); if (victory == EloRatingVictoryEnum.FirstPlayerWins) { score = 32 - 1 / (1 + Math.Pow(10, ((input.Player2Points - input.Player1Points) / flatScore))) * 32; output.Player1NewPoints = input.Player1Points + score; output.Player2NewPoints = input.Player2Points - score; output.Player1PointsChange = score; output.Player2PointsChange = score * -1; } else if (victory == EloRatingVictoryEnum.SecondPlayerWins) { score = 32 - 1 / (1 + Math.Pow(10, ((input.Player1Points - input.Player2Points) / flatScore))) * 32; output.Player1NewPoints = input.Player1Points - score; output.Player2NewPoints = input.Player2Points + score;; output.Player1PointsChange = score * -1; output.Player2PointsChange = score; } else if (victory == EloRatingVictoryEnum.Draw) { score = 0; output.Player1NewPoints = input.Player1Points; output.Player2NewPoints = input.Player2Points; output.Player1PointsChange = 0; output.Player2PointsChange = 0; } return(output); }
public EloRatingOutput(EloRatingInput input) { this.SourceInput = input; }