From a878f6c9003c0dca5680f620fae993fc7c7d29e4 Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 10 Feb 2025 23:54:01 +0100 Subject: Refactoring so that points for first place are calculated in a separate method --- http/api-inc.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/http/api-inc.php b/http/api-inc.php index 22864ea..63c6763 100644 --- a/http/api-inc.php +++ b/http/api-inc.php @@ -211,11 +211,15 @@ class ApiPkl { return 0.0; } - function calculate_points($min_points=1, $scale_factor=1.0) { - $max_points = safe_ceil(max( + protected function _get_max_points() { + return safe_ceil(max( $this->parameters['min_points'], (1 + 0.25 * ($this->parameters['type'] > 2)) * (max(0.15, $this->parameters['title_sum'] / $this->parameters['players']) * $this->parameters['tournament_weight'] + $this->parameters['players_coefficient'] * $this->parameters['contestants'] * $this->parameters['type']) )); + } + + function calculate_points($min_points=1, $scale_factor=1.0) { + $max_points = $this->_get_max_points(); $result = array("sum" => 0, "points" => array()); for ($place = 1; $place <= $this->parameters['contestants']; $place++) { $percentage = $this->get_percentage_from_position($place, $this->parameters['contestants'], $this->parameters['points_cutoffs']); -- cgit v1.2.3