mirror of
https://github.com/JeroenED/libpairtwo.git
synced 2024-11-24 23:37:41 +01:00
Implemented Aro Cut 1
This commit is contained in:
parent
34a5696ff3
commit
08f42adc26
@ -141,20 +141,22 @@ abstract class Tiebreaks extends Tournament
|
||||
* @param Player $player
|
||||
* @return float
|
||||
*/
|
||||
protected function calculateAverageRating(Player $player)
|
||||
protected function calculateAverageRating(Player $player, int $cut = 0)
|
||||
{
|
||||
$pairings = $player->getPairings();
|
||||
$totalrating = 0;
|
||||
$totalopponents = 0;
|
||||
$allratings = [];
|
||||
foreach ($pairings as $pairing) {
|
||||
if (array_search($pairing->getResult(), self::NotPlayed) === false) {
|
||||
$toadd = $pairing->getOpponent()->getElos()['home'];
|
||||
if ($toadd != 0) {
|
||||
$totalrating += $toadd;
|
||||
$totalopponents++;
|
||||
$allratings[] = $toadd;
|
||||
}
|
||||
}
|
||||
}
|
||||
return round($totalrating / $totalopponents);
|
||||
sort($allratings);
|
||||
$allratings = array_slice($allratings, $cut);
|
||||
return round(array_sum($allratings) / count($allratings));
|
||||
}
|
||||
}
|
||||
|
@ -293,6 +293,9 @@ class Tournament extends Tiebreaks
|
||||
case Tiebreak::Aro:
|
||||
return $this->calculateAverageRating($player);
|
||||
break;
|
||||
case Tiebreak::AroCut:
|
||||
return $this->calculateAverageRating($player, 1);
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user