zelenin / elo
PHP 实现的 Elo 评级系统
0.0.1
2014-06-17 00:00 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-10 02:15:57 UTC
README
PHP 实现的 Elo 评级系统
安装
Composer
推荐通过 Composer 安装此扩展。
可以运行
php composer.phar require zelenin/elo "dev-master"
或者将以下内容添加到您的 composer.json
文件的 require 部分
"zelenin/elo": "dev-master"
使用方法
创建具有当前评分的两个玩家
use Zelenin\Elo\Player; $player1 = new Player(1200); $player2 = new Player(800);
创建比赛
use Zelenin\Elo\Match; $match = new Match($player1, $player2); $match->setScore(1, 0) ->setK(32) ->count();
获取玩家
$player1 = $match->getPlayer1(); $player2 = $match->getPlayer2();
获取新的评分
$newRating1 = $player1->getRating(); $newRating2 = $player2->getRating();
高级使用
如果您想将此库用于非传统 Elo 体育(如足球、冰球、篮球)等,您可以设置额外的处理器以设置进球指数和主场修正。
use Zelenin\Elo\Match; use Zelenin\Elo\Player; $player1 = new Player(1200); $player2 = new Player(800); $goalIndexHandler = function ($score1, $score2) { $diff = abs($score1 - $score2); if ($diff > 0) { return sqrt($diff); } return 1; }; $homeCorrectionHandler = function ($home, $diff) { $coefficient = 100; if ($home == 1) { return $diff - $coefficient; } if ($home == 2) { return $diff + $coefficient; } return $diff; }; $match = new Match($player1, $player2); $match->setScore(1, 0) ->setK(32) ->setGoalIndexHandler($goalIndexHandler) ->setHome(2) ->setHomeCorrectionHandler($homeCorrectionHandler) ->count(); $newRating1 = $player1->getRating(); $newRating2 = $player2->getRating();
信息
有关 Elo 评级系统 的更多信息,请参阅 Wiki。