diff options
author | emkael <emkael@tlen.pl> | 2025-02-10 23:54:01 +0100 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2025-02-10 23:54:01 +0100 |
commit | a878f6c9003c0dca5680f620fae993fc7c7d29e4 (patch) | |
tree | 4e192dbacc86998e16d488ace2faa64117b1913c | |
parent | 929d149b3ff7b5feef7e277080543127937445f2 (diff) |
Refactoring so that points for first place are calculated in a separate method
-rw-r--r-- | http/api-inc.php | 8 |
1 files 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']); |