<?php namespace Moserware\Skills\Elo; require_once(dirname(__FILE__) . "/TwoPlayerEloCalculator.php"); require_once(dirname(__FILE__) . "/FideKFactor.php"); /** Including Elo's scheme as a simple comparison. * See http://en.wikipedia.org/wiki/Elo_rating_system#Theory * for more details */ class FideEloCalculator extends TwoPlayerEloCalculator { public function __construct(FideKFactor $kFactor) { parent::__construct($kFactor); } public static function createWithDefaultKFactor() { return new FideEloCalculator(new FideKFactor()); } public static function createWithProvisionalKFactor() { return new FideEloCalculator(new ProvisionalFideKFactor()); } public function getPlayerWinProbability($gameInfo, $playerRating, $opponentRating) { $ratingDifference = $opponentRating - $playerRating; return 1.0 / ( 1.0 + pow(10.0, $ratingDifference / (2 * $gameInfo->getBeta())) ); } } ?>