FalseSkill
A literal implementation of the Glicko-2 rating system in TypeScript. Got it?
Usage
The make script generates an AMD module from the TypeScript sources. The npm package ( npm install falseskill
)
uses amdefine to expose it as a CommonJS module.
- falseskill.ts is the commented TypeScript source
- falseskill.d.ts is just the TypeScript definition
- falseskill.js is the transpiled AMD module
- falseskill.js.map is the source map for the former, referencing falseskill.ts
- falseskill.min.js is the compressed AMD module
- falseskill.min.js.map is the source map for the former, referencing falseskill.ts
API
Configuration:
// Defaultsfalseskill.Tau = 075falseskill.InitialRating = 1500falseskill.InitialDeviation = 350falseskill.InitialVolatility = 006
Create a rating for a new player:
falseskill.newRating : PlayerRating
Calculate a player's new rating once a rating period has concluded:
falseskill.calculateRatingplayer : PlayerRating, opponents : OpponentRating, outcomes : number : PlayerRating
Or update in place:
falseskill.updateRatingplayer : PlayerRating, opponents : OpponentRating, outcomes : number : void
Calculate the rating of a player who has not competed in the rating period:
falseskill.calculateRatingDidNotCompeteplayer : PlayerRating : PlayerRating
Or update in place:
falseskill.updateRatingDidNotCompeteplayer : PlayerRating : void
Copy an already calculated rating to a player:
falseskill.copyRatingfrom : PlayerRating, to : PlayerRating : PlayerRating
Derive a set of matches from a multiplayer (3+ players) game:
falseskill.deriveMatchesrankings : Ranking, filterBy? : PlayerRating : Match
Update ratings in place, for a set of matches played:
falseskill.updateRatingsmatches : Match : void
Calculate the presumed match quality in advance:
falseskill.calculateMatchQualityplayer : PlayerRating, opponents : OpponentRating : MatchQuality
Interfaces and constants
falseskill.Loss = 00falseskill.Draw = 05falseskill.Win = 10
See falseskill.ts for detailed documentation.
License: Apache License, Version 2.0