Chess::Elo - Perl module to calculate Chess "Elo" ratings
use Chess::Elo qw(:all); # Alice is going to thump Bob... my ($alice_elo, $bob_elo) = (2100, 1200); # Oh no, Alice lost to Bob! my $result = 0; # 0.5 for draw, 1 for win my @new_elo_alice_bob = elo ($alice, 0, $bob); use Data::Dumper; warn Dumper(\@new_elo_alice_bob); [ '2068.17894295388', # My, Alice took a hit on her rating :) '1231.82105704612' # Bob is setting pretty ];
This module provides a single function, elo which allows one to calculate individual ratings based on performance. Typically, a player is given an initial provisional rating of 1600 points. In all cases, one gains and loses points as a function of the playing strength of both parties and the result of their encounter.
elo
The formula used is:
A2 = A1 + 32 ( G - ( 1 / ( 1 + 10 ** ( ( B1 -A1) / 400 ) ) ) )
1, if A beats B 0, if A loses to B 0.5, if A draws to B
This function takes 3 arguments describing the result of a person with rating $elo_a competing with the person with rating $elo_b. The result argument is from the perspective of person A. Thus if A won $result is 1. If A lost, $result is 0. If A drew, $result is 0.5.
$elo_a
$elo_b
None by default, elo upon request.
Christian Bartolomaeus' Elo rating module
Christian's module Games::Ratings provides a number of different rating methods, including the one used by FIDE.
The Perl Chess Mailing List:
http://www.yahoogroups.com/group/perl-chess
Wikipedia discussion on the Elo rating:
http://en.wikipedia.org/wiki/Elo_rating
One part of this discussion deserves repetition:
# 113 players have a rating of 2600 or above. # 16 players have a rating of 2700 or above. # 1 player (Garry Kasparov) has a rating of 2800 or above.
Soccer teams rated by Elo:
http://www.eloratings.net
Terrence Brannon, tbone@cpan.org
Copyright 2003 by Terrence Brannon
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Chess::Elo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Chess::Elo
CPAN shell
perl -MCPAN -e shell install Chess::Elo
For more information on module installation, please visit the detailed CPAN module installation guide.