mirror of
https://github.com/furyfire/trueskill.git
synced 2025-01-16 01:47:39 +00:00
More type work
This commit is contained in:
@ -44,6 +44,9 @@ abstract class SkillCalculator
|
||||
return (bool)($this->supportedOptions & $option) == $option;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Team[] $teamsOfPlayerToRatings
|
||||
*/
|
||||
protected function validateTeamCountAndPlayersCountPerTeam(array $teamsOfPlayerToRatings): void
|
||||
{
|
||||
self::validateTeamCountAndPlayersCountPerTeamWithRanges($teamsOfPlayerToRatings, $this->totalTeamsAllowed, $this->playersPerTeamAllowed);
|
||||
|
@ -17,8 +17,12 @@ class GaussianWeightedSumFactor extends GaussianFactor
|
||||
{
|
||||
private array $variableIndexOrdersForWeights = [];
|
||||
|
||||
// This following is used for convenience, for example, the first entry is [0, 1, 2]
|
||||
// corresponding to v[0] = a1*v[1] + a2*v[2]
|
||||
|
||||
/**
|
||||
* This following is used for convenience, for example, the first entry is [0, 1, 2]
|
||||
* corresponding to v[0] = a1*v[1] + a2*v[2]
|
||||
* @var array<int[]> $weights
|
||||
*/
|
||||
private array $weights = [];
|
||||
|
||||
private array $weightsSquared = [];
|
||||
|
@ -5,6 +5,7 @@ namespace DNW\Skills\TrueSkill\Layers;
|
||||
use DNW\Skills\FactorGraphs\ScheduleStep;
|
||||
use DNW\Skills\FactorGraphs\ScheduleSequence;
|
||||
use DNW\Skills\PartialPlay;
|
||||
use DNW\Skills\Player;
|
||||
use DNW\Skills\TrueSkill\Factors\GaussianWeightedSumFactor;
|
||||
use DNW\Skills\FactorGraphs\Variable;
|
||||
|
||||
@ -39,6 +40,9 @@ class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLaye
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Team[] $teamMembers
|
||||
*/
|
||||
protected function createPlayerToTeamSumFactor(array $teamMembers, Variable $sumVariable): GaussianWeightedSumFactor
|
||||
{
|
||||
$weights = array_map(
|
||||
|
@ -7,6 +7,7 @@ use DNW\Skills\FactorGraphs\Variable;
|
||||
use DNW\Skills\FactorGraphs\KeyedVariable;
|
||||
use DNW\Skills\Numerics\BasicMath;
|
||||
use DNW\Skills\Rating;
|
||||
use DNW\Skills\Team;
|
||||
use DNW\Skills\TrueSkill\Factors\GaussianPriorFactor;
|
||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
|
||||
use DNW\Skills\FactorGraphs\ScheduleSequence;
|
||||
@ -15,6 +16,9 @@ use DNW\Skills\FactorGraphs\ScheduleSequence;
|
||||
// start the process.
|
||||
class PlayerPriorValuesToSkillsLayer extends TrueSkillFactorGraphLayer
|
||||
{
|
||||
/**
|
||||
* @param Team[] $teams
|
||||
*/
|
||||
public function __construct(TrueSkillFactorGraph $parentGraph, private readonly array $teams)
|
||||
{
|
||||
parent::__construct($parentGraph);
|
||||
|
@ -11,6 +11,9 @@ class TeamDifferencesComparisonLayer extends TrueSkillFactorGraphLayer
|
||||
{
|
||||
private float $epsilon;
|
||||
|
||||
/**
|
||||
* @param int[] $teamRanks
|
||||
*/
|
||||
public function __construct(TrueSkillFactorGraph $parentGraph, private readonly array $teamRanks)
|
||||
{
|
||||
parent::__construct($parentGraph);
|
||||
|
@ -9,6 +9,7 @@ use DNW\Skills\FactorGraphs\VariableFactory;
|
||||
use DNW\Skills\GameInfo;
|
||||
use DNW\Skills\Numerics\GaussianDistribution;
|
||||
use DNW\Skills\Rating;
|
||||
use DNW\Skills\Team;
|
||||
use DNW\Skills\RatingContainer;
|
||||
use DNW\Skills\FactorGraphs\FactorGraphLayer;
|
||||
use DNW\Skills\TrueSkill\Layers\IteratedTeamDifferencesInnerLayer;
|
||||
@ -29,7 +30,7 @@ class TrueSkillFactorGraph extends FactorGraph
|
||||
|
||||
/**
|
||||
* @param GameInfo $gameInfo Parameters for the game.
|
||||
* @param Team[] $teamsOfPlayerToRatings A mapping of team players and their ratings.
|
||||
* @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).
|
||||
*/
|
||||
public function __construct(private readonly GameInfo $gameInfo, array $teams, array $teamRanks)
|
||||
|
Reference in New Issue
Block a user