maartenstaa/glicko2
Composer 安装命令:
composer require maartenstaa/glicko2
包简介
PHP implementation of the Glicko-2 rating algorithm
README 文档
README
PHP implementation of the Glicko-2 rating algorithm. This is a PHP port of goochjs/glicko2.
Installation
Using Composer, add the package to your require section.
{
"require": {
"maartenstaa/glicko2": "dev-master"
}
}
Run composer update to fetch the new requirement.
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 coding standard.
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.
maartenstaa/glicko2 适用场景与选型建议
maartenstaa/glicko2 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.4k 次下载、GitHub Stars 达 14, 最近一次更新时间为 2015 年 08 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 maartenstaa/glicko2 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 maartenstaa/glicko2 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 7.4k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2015-08-13