JavaScript implementation of TrueSkill player ranking
CoffeeScript Python JavaScript Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
convert
LICENSE.txt
README.md
example.js
package.json
portedTrueskill.coffee
portedTrueskill.js
trueskill.coffee
trueskill.js

README.md

#TrueSkill

##Installation Simply run npm install trueskill

##Background This library implements the TrueSkill(TM) ranking system and is a port of the python library https://github.com/dougz/trueskill.

##Usage

// The output of this program should match the output of the TrueSkill
// calculator at:
//
//   http://atom.research.microsoft.com/trueskill/rankcalculator.aspx
//
// (Select game mode "custom", create 4 players each on their own team,
// check the second "Draw?" box to indicate a tie for second place,
// then click "Recalculate Skill Level Distribution".  The mu and sigma
// values in the "after game" section should match what this program
// prints.

// The objects we pass to AdjustPlayers can be anything with skill and
// rank attributes. 

// Create four players.  Assign each of them the default skill.  The
// player ranking (their "level") is mu-3*sigma, so the default skill
// value corresponds to a level of 0.

alice = {}
alice.skill = [25.0, 25.0/3.0]

bob = {}
bob.skill = [25.0, 25.0/3.0]

chris = {}
chris.skill = [25.0, 25.0/3.0]

darren = {}
darren.skill = [25.0, 25.0/3.0]

// The four players play a game.  Alice wins, Bob and Chris tie for
// second, Darren comes in last.  The actual numerical values of the
// ranks don't matter, they could be (1, 2, 2, 4) or (1, 2, 2, 3) or
// (23, 45, 45, 67).  All that matters is that a smaller rank beats a
// larger one, and equal ranks indicate draws.

alice.rank = 1
bob.rank = 2
chris.rank = 2
darren.rank = 4

// Do the computation to find each player's new skill estimate.

trueskill = require("trueskill");
trueskill.AdjustPlayers([alice, bob, chris, darren]);

// Print the results.

console.log("alice:");
console.log(alice.skill);
console.log("bob:");
console.log(bob.skill);
console.log("chris:");
console.log(chris.skill);
console.log("darren:");
console.log(darren.skill);