2017 © Pedro Peláez
 

library glicko2

PHP implementation of the Glicko-2 rating algorithm

image

maartenstaa/glicko2

PHP implementation of the Glicko-2 rating algorithm

  • Thursday, August 13, 2015
  • by MaartenStaa
  • Repository
  • 2 Watchers
  • 8 Stars
  • 630 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 1 % Grown

The README.md

Glicko2

PHP implementation of the Glicko-2 rating algorithm. This is a PHP port of goochjs/glicko2., (*1)

Build Status Scrutinizer Code Quality [Code Coverage][3], (*2)

Installation

Using Composer, add the package to your require section., (*3)

{
    "require": {
        "maartenstaa/glicko2": "dev-master"
    }
}

Run composer update to fetch the new requirement., (*4)

Usage

use MaartenStaa\Glicko2\Rating;
use MaartenStaa\Glicko2\RatingCalculator;
use MaartenStaa\Glicko2\RatingPeriodResults;

// Instantiate a RatingCalculator object.
// At instantiation, you can set the default rating for a player's volatility and
// the system constant for your game ("τ", which constrains changes in volatility
// over time) or just accept the defaults.
$calculator = new RatingCalculator(/* $initVolatility, $tau */);

// Instantiate a Rating object for each player.
$player1 = new Rating($calculator/* , $rating, $ratingDeviation, $volatility */);
$player2 = new Rating($calculator/* , $rating, $ratingDeviation, $volatility */);
$player3 = new Rating($calculator/* , $rating, $ratingDeviation, $volatility */);

// Instantiate a RatingPeriodResults object.
$results = new RatingPeriodResults();

// Add game results to the RatingPeriodResults object until you reach the end of your rating period.
// Use addResult($winner, $loser) for games that had an outcome.
$results->addResult($player1, $player2);
// Use addDraw($player1, $player2) for games that resulted in a draw.
$results->addDraw($player1, $player2);
// Use addParticipant($player) to add players that played no games in the rating period.
$results->addParticipant($player3);

// Once you've reached the end of your rating period, call the updateRatings method
// against the RatingCalculator; this takes the RatingPeriodResults object as argument.
//  * Note that the RatingPeriodResults object is cleared down of game results once
//    the new ratings have been calculated.
//  * Participants remain within the RatingPeriodResults object, however, and will
//    have their rating deviations recalculated at the end of future rating periods
//    even if they don't play any games. This is in-line with Glickman's algorithm.
$calculator->updateRatings($results);

// Access the getRating, getRatingDeviation, and getVolatility methods of each
// player's Rating to see the new values.
foreach (array($player1, $player2, $player3) as $index => $player) {
    echo 'Player #', $index, ' values: ', $player->getRating(), ', ',
        $player->getRatingDeviation(), ', ', $player->getVolatility(), PHP_EOL;
}

Contributing

Coding standard

All code is to follow the [PSR-2][4] coding standard., (*5)

Unit tests

If you find a bug, feel free to send a pull request to fix it, but make sure to always include a regression test., (*6)

The Versions

13/08 2015

dev-master

9999999-dev

PHP implementation of the Glicko-2 rating algorithm

  Sources   Download

BSD-3-Clause

The Development Requires

by Maarten Staa

13/08 2015

v1.0.0

1.0.0.0

PHP implementation of the Glicko-2 rating algorithm

  Sources   Download

BSD-3-Clause

The Development Requires

by Maarten Staa