mirror of
https://github.com/furyfire/trueskill.git
synced 2025-01-15 17:37:39 +00:00
Psalm analysis without warnings.
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "dnw/php-trueskill",
|
||||
"description": "Trueskill implementation by Moserware updated for PHP 8.1",
|
||||
"description": "Trueskill implementation by Moserware updated for PHP 8.2",
|
||||
"keywords": ["trueskill", "matchmaking", "ranking", "skill", "elo"],
|
||||
"require": {
|
||||
"php": "^8.1"
|
||||
"php": "^8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^10",
|
||||
|
@ -6,7 +6,7 @@
|
||||
xmlns="https://getpsalm.org/schema/config"
|
||||
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
||||
findUnusedBaselineEntry="true"
|
||||
findUnusedCode="true"
|
||||
findUnusedCode="false"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="src" />
|
||||
|
@ -19,25 +19,25 @@ abstract class SkillCalculator
|
||||
/**
|
||||
* Calculates new ratings based on the prior ratings and team ranks.
|
||||
*
|
||||
* @param GameInfo $gameInfo Parameters for the game.
|
||||
* @param Team[] $teamsOfPlayerToRatings A mapping of team players and their ratings.
|
||||
* @param int[] $teamRanks The ranks of the teams where 1 is first place. For a tie, repeat the number (e.g. 1, 2, 2).
|
||||
* @param GameInfo $gameInfo Parameters for the game.
|
||||
* @param Team[] $teams A mapping of team players and their ratings.
|
||||
* @param int[] $teamRanks The ranks of the teams where 1 is first place. For a tie, repeat the number (e.g. 1, 2, 2).
|
||||
* @return RatingContainer All the players and their new ratings.
|
||||
*/
|
||||
abstract public function calculateNewRatings(
|
||||
GameInfo $gameInfo,
|
||||
array $teamsOfPlayerToRatings,
|
||||
array $teams,
|
||||
array $teamRanks
|
||||
): RatingContainer;
|
||||
|
||||
/**
|
||||
* Calculates the match quality as the likelihood of all teams drawing.
|
||||
*
|
||||
* @param GameInfo $gameInfo Parameters for the game.
|
||||
* @param Team[] $teamsOfPlayerToRatings A mapping of team players and their ratings.
|
||||
* @param GameInfo $gameInfo Parameters for the game.
|
||||
* @param Team[] $teams A mapping of team players and their ratings.
|
||||
* @return float The quality of the match between the teams as a percentage (0% = bad, 100% = well matched).
|
||||
*/
|
||||
abstract public function calculateMatchQuality(GameInfo $gameInfo, array $teamsOfPlayerToRatings): float;
|
||||
abstract public function calculateMatchQuality(GameInfo $gameInfo, array $teams): float;
|
||||
|
||||
public function isSupported(int $option): bool
|
||||
{
|
||||
|
@ -84,7 +84,7 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator
|
||||
$selfMeanSum = BasicMath::sum($selfTeam->getAllRatings(), $meanGetter);
|
||||
$otherTeamMeanSum = BasicMath::sum($otherTeam->getAllRatings(), $meanGetter);
|
||||
|
||||
$varianceGetter = fn ($currentRating) => BasicMath::square($currentRating->getStandardDeviation());
|
||||
$varianceGetter = fn ($currentRating): float => BasicMath::square($currentRating->getStandardDeviation());
|
||||
|
||||
$c = sqrt(
|
||||
BasicMath::sum($selfTeam->getAllRatings(), $varianceGetter)
|
||||
@ -162,7 +162,7 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator
|
||||
|
||||
$meanGetter = fn ($currentRating) => $currentRating->getMean();
|
||||
|
||||
$varianceGetter = fn ($currentRating) => BasicMath::square($currentRating->getStandardDeviation());
|
||||
$varianceGetter = fn ($currentRating): float => BasicMath::square($currentRating->getStandardDeviation());
|
||||
|
||||
$team1MeanSum = BasicMath::sum($team1Ratings, $meanGetter);
|
||||
$team1StdDevSquared = BasicMath::sum($team1Ratings, $varianceGetter);
|
||||
|
Reference in New Issue
Block a user