summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2025-02-10 23:54:01 +0100
committeremkael <emkael@tlen.pl>2025-02-10 23:54:01 +0100
commita878f6c9003c0dca5680f620fae993fc7c7d29e4 (patch)
tree4e192dbacc86998e16d488ace2faa64117b1913c
parent929d149b3ff7b5feef7e277080543127937445f2 (diff)
Refactoring so that points for first place are calculated in a separate method
-rw-r--r--http/api-inc.php8
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']);