Arpad: ELO Rating System for Node.js
This is an implementation of ELO for Node.js (ELO is named after Arpad Elo, hence the package name).
This module is heavily tested and has many features used in real-world ELO situations.
Installation
npm install arpad
Simple Usage
This is a fairly simple example showing the most common usage for Arpad:
var Elo = require('arpad');
var elo = new Elo();
var alice = 1600;
var bob = 1300;
var new_alice = elo.newRatingIfWon(alice, bob);
console.log("Alice's new rating if she won:", new_alice);
var new_bob = elo.newRatingIfWon(bob, alice);
console.log("Bob's new rating if he won:", new_bob);
Complex Usage
This is a more complex example, making use of K-factor tables and score values:
var Elo = require('arpad');
var uscf = {
default: 32,
2100: 24,
2400: 16
};
var elo = new Elo(uscf, 100);
var alice = 2090;
var bob = 2700;
var odds_alice_wins = elo.expectedScore(alice, bob);
console.log("The odds of Alice winning are about:", odds_alice_wins);
alice = elo.newRating(odds_alice_wins, 1.0, alice);
console.log("Alice's new rating after she won:", alice);
odds_alice_wins = elo.expectedScore(alice, bob);
console.log("The odds of Alice winning again are about:", odds_alice_wins);
alice = elo.newRating(odds_alice_wins, 1.0, alice);
console.log("Alice's new rating if she won again:", alice);
Running Tests
First install mocha
npm install -g mocha
Then run either of the following from the root of the repository
npm test
mocha
License
MIT