mirror of
				https://github.com/furyfire/trueskill.git
				synced 2025-11-04 10:12:28 +01:00 
			
		
		
		
	Move to DNW namespace
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Rating;
 | 
			
		||||
use DNW\Skills\Rating;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * An Elo rating represented by a single number (mean).
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Including Elo's scheme as a simple comparison.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
// see http://ratings.fide.com/calculator_rtd.phtml for details
 | 
			
		||||
class FideKFactor extends KFactor
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,18 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
class GaussianEloCalculator extends TwoPlayerEloCalculator
 | 
			
		||||
{
 | 
			
		||||
    // From the paper
 | 
			
		||||
    const STABLE_KFACTOR = 24;
 | 
			
		||||
 | 
			
		||||
    public function __construct()        
 | 
			
		||||
    public function __construct()
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct(new KFactor(self::STABLE_KFACTOR));
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public function getPlayerWinProbability(GameInfo $gameInfo, $playerRating, $opponentRating)
 | 
			
		||||
    {
 | 
			
		||||
        $ratingDifference = $playerRating - $opponentRating;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
class KFactor
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Indicates someone who has played less than 30 games.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Elo;
 | 
			
		||||
<?php namespace DNW\Skills\Elo;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\PairwiseComparison;
 | 
			
		||||
use Moserware\Skills\RankSorter;
 | 
			
		||||
use Moserware\Skills\SkillCalculator;
 | 
			
		||||
use Moserware\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use Moserware\Skills\PlayersRange;
 | 
			
		||||
use Moserware\Skills\TeamsRange;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\PairwiseComparison;
 | 
			
		||||
use DNW\Skills\RankSorter;
 | 
			
		||||
use DNW\Skills\SkillCalculator;
 | 
			
		||||
use DNW\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use DNW\Skills\PlayersRange;
 | 
			
		||||
use DNW\Skills\TeamsRange;
 | 
			
		||||
 | 
			
		||||
abstract class TwoPlayerEloCalculator extends SkillCalculator
 | 
			
		||||
{
 | 
			
		||||
    protected $_kFactor;
 | 
			
		||||
 | 
			
		||||
    protected function __construct(KFactor $kFactor)        
 | 
			
		||||
    protected function __construct(KFactor $kFactor)
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct(SkillCalculatorSupportedOptions::NONE, TeamsRange::exactly(2), PlayersRange::exactly(1));
 | 
			
		||||
        $this->_kFactor = $kFactor;
 | 
			
		||||
@@ -23,16 +23,16 @@ abstract class TwoPlayerEloCalculator extends SkillCalculator
 | 
			
		||||
    {
 | 
			
		||||
        $this->validateTeamCountAndPlayersCountPerTeam($teamsOfPlayerToRatings);
 | 
			
		||||
        RankSorter::sort($teamsOfPlayerToRatings, $teamRanks);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $result = array();
 | 
			
		||||
        $isDraw = ($teamRanks[0] === $teamRanks[1]);
 | 
			
		||||
 | 
			
		||||
        $team1 = $teamsOfPlayerToRatings[0];
 | 
			
		||||
        $team2 = $teamsOfPlayerToRatings[1];
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $player1 = each($team1);
 | 
			
		||||
        $player2 = each($team2);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $player1Rating = $player1["value"]->getMean();
 | 
			
		||||
        $player2Rating = $player2["value"]->getMean();
 | 
			
		||||
 | 
			
		||||
@@ -75,13 +75,13 @@ abstract class TwoPlayerEloCalculator extends SkillCalculator
 | 
			
		||||
        $this->validateTeamCountAndPlayersCountPerTeam($teamsOfPlayerToRatings);
 | 
			
		||||
        $team1 = $teamsOfPlayerToRatings[0];
 | 
			
		||||
        $team2 = $teamsOfPlayerToRatings[1];
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $player1 = $team1[0];
 | 
			
		||||
        $player2 = $team2[0];
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $player1Rating = $player1[1]->getMean();
 | 
			
		||||
        $player2Rating = $player2[1]->getMean();
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $ratingDifference = $player1Rating - $player2Rating;
 | 
			
		||||
 | 
			
		||||
        // The TrueSkill paper mentions that they used s1 - s2 (rating difference) to
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
use Moserware\Skills\Guard;
 | 
			
		||||
use Moserware\Skills\HashMap;
 | 
			
		||||
use DNW\Skills\Guard;
 | 
			
		||||
use DNW\Skills\HashMap;
 | 
			
		||||
 | 
			
		||||
abstract class Factor
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class FactorGraph
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
// edit this
 | 
			
		||||
abstract class FactorGraphLayer
 | 
			
		||||
{
 | 
			
		||||
    private $_localFactors = array();
 | 
			
		||||
    private $_outputVariablesGroups = array();    
 | 
			
		||||
    private $_outputVariablesGroups = array();
 | 
			
		||||
    private $_inputVariablesGroups = array();
 | 
			
		||||
    private $_parentFactorGraph;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Helper class for computing the factor graph's normalization constant.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class KeyedVariable extends Variable
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class Message
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
abstract class Schedule
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class ScheduleLoop extends Schedule
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class ScheduleSequence extends Schedule
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class ScheduleStep extends Schedule
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class Variable
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\FactorGraphs;
 | 
			
		||||
<?php namespace DNW\Skills\FactorGraphs;
 | 
			
		||||
 | 
			
		||||
class VariableFactory
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Parameters about the game for calculating the TrueSkill.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Basic hashmap that supports object keys.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Indicates support for allowing partial play (where a player only plays a part of the time).
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
interface ISupportPartialUpdate
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Basic math functions.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
class DiagonalMatrix extends Matrix
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Computes Gaussian (bell curve) values.
 | 
			
		||||
@@ -177,7 +177,7 @@ class GaussianDistribution
 | 
			
		||||
 | 
			
		||||
    private static function errorFunctionCumulativeTo($x)
 | 
			
		||||
    {
 | 
			
		||||
        // Derived from page 265 of Numerical Recipes 3rd Edition            
 | 
			
		||||
        // Derived from page 265 of Numerical Recipes 3rd Edition
 | 
			
		||||
        $z = abs($x);
 | 
			
		||||
 | 
			
		||||
        $t = 2.0 / (2.0 + $z);
 | 
			
		||||
@@ -229,7 +229,7 @@ class GaussianDistribution
 | 
			
		||||
 | 
			
		||||
    private static function inverseErrorFunctionCumulativeTo($p)
 | 
			
		||||
    {
 | 
			
		||||
        // From page 265 of numerical recipes                       
 | 
			
		||||
        // From page 265 of numerical recipes
 | 
			
		||||
 | 
			
		||||
        if ($p >= 2.0) {
 | 
			
		||||
            return -100;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
class IdentityMatrix extends DiagonalMatrix
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
// The whole purpose of this class is to make the code for the SkillCalculator(s)
 | 
			
		||||
// look a little cleaner
 | 
			
		||||
@@ -9,7 +9,7 @@ class Range
 | 
			
		||||
{
 | 
			
		||||
    private $_min;
 | 
			
		||||
    private $_max;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public function __construct($min, $max)
 | 
			
		||||
    {
 | 
			
		||||
        if ($min > $max)
 | 
			
		||||
@@ -24,13 +24,13 @@ class Range
 | 
			
		||||
    public function getMin()
 | 
			
		||||
    {
 | 
			
		||||
        return $this->_min;
 | 
			
		||||
    }    
 | 
			
		||||
    
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getMax()
 | 
			
		||||
    {
 | 
			
		||||
        return $this->_max;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    protected static function create($min, $max)
 | 
			
		||||
    {
 | 
			
		||||
        return new Range($min, $max);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
class SquareMatrix extends Matrix
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills\Numerics;
 | 
			
		||||
<?php namespace DNW\Skills\Numerics;
 | 
			
		||||
 | 
			
		||||
class Vector extends Matrix
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Represents a comparison between two players.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
class PartialPlay
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Represents a player who has a Rating.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\Range;
 | 
			
		||||
use DNW\Skills\Numerics\Range;
 | 
			
		||||
 | 
			
		||||
class PlayersRange extends Range
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Helper class to sort ranks in non-decreasing order.
 | 
			
		||||
@@ -13,7 +13,7 @@ class RankSorter
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public static function sort(array &$teams, array &$teamRanks)
 | 
			
		||||
    {        
 | 
			
		||||
    {
 | 
			
		||||
        array_multisort($teamRanks, $teams);
 | 
			
		||||
        return $teams;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
// Container for a player's rating.
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
class Rating
 | 
			
		||||
{
 | 
			
		||||
@@ -54,7 +54,7 @@ class Rating
 | 
			
		||||
        $posteriorGaussian = new GaussianDistribution($fullPosterior->getMean(), $fullPosterior . getStandardDeviation());
 | 
			
		||||
 | 
			
		||||
        // From a clarification email from Ralf Herbrich:
 | 
			
		||||
        // "the idea is to compute a linear interpolation between the prior and posterior skills of each player 
 | 
			
		||||
        // "the idea is to compute a linear interpolation between the prior and posterior skills of each player
 | 
			
		||||
        //  ... in the canonical space of parameters"
 | 
			
		||||
 | 
			
		||||
        $precisionDifference = $posteriorGaussian->getPrecision() - $priorGaussian->getPrecision();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
class RatingContainer
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
class Team extends RatingContainer
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(Player $player = null, Rating $rating = null)
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct();
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if(!is_null($player))
 | 
			
		||||
        {
 | 
			
		||||
            $this->addPlayer($player, $rating);
 | 
			
		||||
@@ -16,5 +16,5 @@ class Team extends RatingContainer
 | 
			
		||||
    {
 | 
			
		||||
        $this->setRating($player, $rating);
 | 
			
		||||
        return $this;
 | 
			
		||||
    }    
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
class Teams
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?php namespace Moserware\Skills;
 | 
			
		||||
<?php namespace DNW\Skills;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\Range;
 | 
			
		||||
use DNW\Skills\Numerics\Range;
 | 
			
		||||
 | 
			
		||||
class TeamsRange extends Range
 | 
			
		||||
{
 | 
			
		||||
@@ -8,7 +8,7 @@ class TeamsRange extends Range
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct($min, $max);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    protected static function create($min, $max)
 | 
			
		||||
    {
 | 
			
		||||
        return new TeamsRange($min, $max);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
final class DrawMargin
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\Guard;
 | 
			
		||||
use Moserware\Skills\ISupportPartialPlay;
 | 
			
		||||
use Moserware\Skills\ISupportPartialUpdate;
 | 
			
		||||
use Moserware\Skills\Numerics\BasicMath;
 | 
			
		||||
use Moserware\Skills\Numerics\DiagonalMatrix;
 | 
			
		||||
use Moserware\Skills\Numerics\Matrix;
 | 
			
		||||
use Moserware\Skills\Numerics\Vector;
 | 
			
		||||
use Moserware\Skills\PartialPlay;
 | 
			
		||||
use Moserware\Skills\PlayersRange;
 | 
			
		||||
use Moserware\Skills\RankSorter;
 | 
			
		||||
use Moserware\Skills\SkillCalculator;
 | 
			
		||||
use Moserware\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use Moserware\Skills\TeamsRange;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\Guard;
 | 
			
		||||
use DNW\Skills\ISupportPartialPlay;
 | 
			
		||||
use DNW\Skills\ISupportPartialUpdate;
 | 
			
		||||
use DNW\Skills\Numerics\BasicMath;
 | 
			
		||||
use DNW\Skills\Numerics\DiagonalMatrix;
 | 
			
		||||
use DNW\Skills\Numerics\Matrix;
 | 
			
		||||
use DNW\Skills\Numerics\Vector;
 | 
			
		||||
use DNW\Skills\PartialPlay;
 | 
			
		||||
use DNW\Skills\PlayersRange;
 | 
			
		||||
use DNW\Skills\RankSorter;
 | 
			
		||||
use DNW\Skills\SkillCalculator;
 | 
			
		||||
use DNW\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use DNW\Skills\TeamsRange;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calculates TrueSkill using a full factor graph.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Factors;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Factors;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Factor;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Message;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Factor;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Message;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
abstract class GaussianFactor extends Factor
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Factors;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Factors;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TruncatedGaussianCorrectionFunctions;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Message;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\TrueSkill\TruncatedGaussianCorrectionFunctions;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Message;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Factor representing a team difference that has exceeded the draw margin.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Factors;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Factors;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\KeyedVariable;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Message;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\FactorGraphs\KeyedVariable;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Message;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Connects two variables and adds uncertainty.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Factors;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Factors;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Message;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Message;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Supplies the factor graph with prior information.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Factors;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Factors;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Guard;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Message;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use Moserware\Skills\Numerics\BasicMath;
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\Guard;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Message;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\Numerics\BasicMath;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Factor that sums together multiple Gaussians.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Factors;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Factors;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TruncatedGaussianCorrectionFunctions;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Message;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\TrueSkill\TruncatedGaussianCorrectionFunctions;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Message;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Factor representing a team difference that has not exceeded the draw margin.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleLoop;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleLoop;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
 | 
			
		||||
// The whole purpose of this is to do a loop on the bottom
 | 
			
		||||
class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\PartialPlay;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleLoop;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Factors\GaussianWeightedSumFactor;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\PartialPlay;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleLoop;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use DNW\Skills\TrueSkill\Factors\GaussianWeightedSumFactor;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
 | 
			
		||||
class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\BasicMath;
 | 
			
		||||
use Moserware\Skills\Rating;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Factors\GaussianPriorFactor;
 | 
			
		||||
use DNW\Skills\Numerics\BasicMath;
 | 
			
		||||
use DNW\Skills\Rating;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\TrueSkill\Factors\GaussianPriorFactor;
 | 
			
		||||
 | 
			
		||||
// We intentionally have no Posterior schedule since the only purpose here is to
 | 
			
		||||
// start the process.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\KeyedVariable;
 | 
			
		||||
use Moserware\Skills\Numerics\BasicMath;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Factors\GaussianLikelihoodFactor;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleStep;
 | 
			
		||||
use DNW\Skills\FactorGraphs\KeyedVariable;
 | 
			
		||||
use DNW\Skills\Numerics\BasicMath;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\TrueSkill\Factors\GaussianLikelihoodFactor;
 | 
			
		||||
 | 
			
		||||
class PlayerSkillsToPerformancesLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\TrueSkill\DrawMargin;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Factors\GaussianGreaterThanFactor;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Factors\GaussianWithinFactor;
 | 
			
		||||
use DNW\Skills\TrueSkill\DrawMargin;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\TrueSkill\Factors\GaussianGreaterThanFactor;
 | 
			
		||||
use DNW\Skills\TrueSkill\Factors\GaussianWithinFactor;
 | 
			
		||||
 | 
			
		||||
class TeamDifferencesComparisonLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\FactorGraphs\Variable;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Factors\GaussianWeightedSumFactor;
 | 
			
		||||
use DNW\Skills\FactorGraphs\Variable;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\TrueSkill\Factors\GaussianWeightedSumFactor;
 | 
			
		||||
 | 
			
		||||
class TeamPerformancesToTeamPerformanceDifferencesLayer extends TrueSkillFactorGraphLayer
 | 
			
		||||
{
 | 
			
		||||
@@ -26,7 +26,7 @@ class TeamPerformancesToTeamPerformanceDifferencesLayer extends TrueSkillFactorG
 | 
			
		||||
            $newDifferencesFactor = $this->createTeamPerformanceToDifferenceFactor($strongerTeam, $weakerTeam, $currentDifference);
 | 
			
		||||
            $this->addLayerFactor($newDifferencesFactor);
 | 
			
		||||
 | 
			
		||||
            // REVIEW: Does it make sense to have groups of one?            
 | 
			
		||||
            // REVIEW: Does it make sense to have groups of one?
 | 
			
		||||
            $outputVariablesGroup[] = array($currentDifference);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill\Layers;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill\Layers;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\FactorGraphs\FactorGraphLayer;
 | 
			
		||||
use Moserware\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
use DNW\Skills\FactorGraphs\FactorGraphLayer;
 | 
			
		||||
use DNW\Skills\TrueSkill\TrueSkillFactorGraph;
 | 
			
		||||
 | 
			
		||||
abstract class TrueSkillFactorGraphLayer extends FactorGraphLayer
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use Moserware\Skills\Rating;
 | 
			
		||||
use Moserware\Skills\RatingContainer;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\FactorGraph;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\FactorList;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\VariableFactory;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Layers\IteratedTeamDifferencesInnerLayer;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Layers\PlayerPerformancesToTeamPerformancesLayer;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Layers\PlayerPriorValuesToSkillsLayer;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Layers\PlayerSkillsToPerformancesLayer;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Layers\TeamDifferencesComparisonLayer;
 | 
			
		||||
use Moserware\Skills\TrueSkill\Layers\TeamPerformancesToTeamPerformanceDifferencesLayer;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\Rating;
 | 
			
		||||
use DNW\Skills\RatingContainer;
 | 
			
		||||
use DNW\Skills\FactorGraphs\FactorGraph;
 | 
			
		||||
use DNW\Skills\FactorGraphs\FactorList;
 | 
			
		||||
use DNW\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
use DNW\Skills\FactorGraphs\VariableFactory;
 | 
			
		||||
use DNW\Skills\TrueSkill\Layers\IteratedTeamDifferencesInnerLayer;
 | 
			
		||||
use DNW\Skills\TrueSkill\Layers\PlayerPerformancesToTeamPerformancesLayer;
 | 
			
		||||
use DNW\Skills\TrueSkill\Layers\PlayerPriorValuesToSkillsLayer;
 | 
			
		||||
use DNW\Skills\TrueSkill\Layers\PlayerSkillsToPerformancesLayer;
 | 
			
		||||
use DNW\Skills\TrueSkill\Layers\TeamDifferencesComparisonLayer;
 | 
			
		||||
use DNW\Skills\TrueSkill\Layers\TeamPerformancesToTeamPerformanceDifferencesLayer;
 | 
			
		||||
 | 
			
		||||
class TrueSkillFactorGraph extends FactorGraph
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
use DNW\Skills\Numerics\GaussianDistribution;
 | 
			
		||||
 | 
			
		||||
class TruncatedGaussianCorrectionFunctions
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,20 +1,20 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\Guard;
 | 
			
		||||
use Moserware\Skills\Numerics\BasicMath;
 | 
			
		||||
use Moserware\Skills\PairwiseComparison;
 | 
			
		||||
use Moserware\Skills\RankSorter;
 | 
			
		||||
use Moserware\Skills\Rating;
 | 
			
		||||
use Moserware\Skills\RatingContainer;
 | 
			
		||||
use Moserware\Skills\SkillCalculator;
 | 
			
		||||
use Moserware\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use Moserware\Skills\PlayersRange;
 | 
			
		||||
use Moserware\Skills\TeamsRange;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\Guard;
 | 
			
		||||
use DNW\Skills\Numerics\BasicMath;
 | 
			
		||||
use DNW\Skills\PairwiseComparison;
 | 
			
		||||
use DNW\Skills\RankSorter;
 | 
			
		||||
use DNW\Skills\Rating;
 | 
			
		||||
use DNW\Skills\RatingContainer;
 | 
			
		||||
use DNW\Skills\SkillCalculator;
 | 
			
		||||
use DNW\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use DNW\Skills\PlayersRange;
 | 
			
		||||
use DNW\Skills\TeamsRange;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calculates the new ratings for only two players.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * When you only have two players, a lot of the math simplifies. The main purpose of this class
 | 
			
		||||
 * is to show the bare minimum of what a TrueSkill implementation should have.
 | 
			
		||||
 */
 | 
			
		||||
@@ -35,12 +35,12 @@ class TwoPlayerTrueSkillCalculator extends SkillCalculator
 | 
			
		||||
 | 
			
		||||
        // Make sure things are in order
 | 
			
		||||
        RankSorter::sort($teams, $teamRanks);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // Since we verified that each team has one player, we know the player is the first one
 | 
			
		||||
        $winningTeamPlayers = $teams[0]->getAllPlayers();
 | 
			
		||||
        $winner = $winningTeamPlayers[0];
 | 
			
		||||
        $winnerPreviousRating = $teams[0]->getRating($winner);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        $losingTeamPlayers = $teams[1]->getAllPlayers();
 | 
			
		||||
        $loser = $losingTeamPlayers[0];
 | 
			
		||||
        $loserPreviousRating = $teams[1]->getRating($loser);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
<?php namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
<?php namespace DNW\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\Guard;
 | 
			
		||||
use Moserware\Skills\Numerics\BasicMath;
 | 
			
		||||
use Moserware\Skills\PairwiseComparison;
 | 
			
		||||
use Moserware\Skills\RankSorter;
 | 
			
		||||
use Moserware\Skills\Rating;
 | 
			
		||||
use Moserware\Skills\RatingContainer;
 | 
			
		||||
use Moserware\Skills\SkillCalculator;
 | 
			
		||||
use Moserware\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
use DNW\Skills\GameInfo;
 | 
			
		||||
use DNW\Skills\Guard;
 | 
			
		||||
use DNW\Skills\Numerics\BasicMath;
 | 
			
		||||
use DNW\Skills\PairwiseComparison;
 | 
			
		||||
use DNW\Skills\RankSorter;
 | 
			
		||||
use DNW\Skills\Rating;
 | 
			
		||||
use DNW\Skills\RatingContainer;
 | 
			
		||||
use DNW\Skills\SkillCalculator;
 | 
			
		||||
use DNW\Skills\SkillCalculatorSupportedOptions;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\PlayersRange;
 | 
			
		||||
use Moserware\Skills\TeamsRange;
 | 
			
		||||
use DNW\Skills\PlayersRange;
 | 
			
		||||
use DNW\Skills\TeamsRange;
 | 
			
		||||
 | 
			
		||||
use Moserware\Skills\Team;
 | 
			
		||||
use DNW\Skills\Team;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calculates new ratings for only two teams where each team has 1 or more players.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user