Skillz
Skillz is a Competitive Ranking System based upon others such as TrueSkill among others.
Getting Started
Add this line to your application's Gemfile:
gem 'skillz'
And then execute:
$ bundle
Or install it yourself as:
$ gem install skillz
Usage
example
# create players where 30 is their average score
# 4 is the level of uncertainty of their skill
# and the last is how long its been since their last match
# skill_level defaults to 25, and uncertainty defaults to skill_level/3
# if no last played time is given it ignores it
p1 = Skillz::Player.new(30, 4, Time.now - 4.days)
p2 = Skillz::Player.new(30, 4, Time.now - 20.days)
p3 = Skillz::Player.new
p4 = Skillz::Player.new
# create teams with the players you want in each, and their ranking
# as the second argument
team1 = Skillz::Team.new([p1, p2], 1)
team2 = Skillz::Team.new([p3, p4], 2)
Skillz::Match.score(Skillz::Team.new([p1, p2], 1), Skillz::Team.new([p2], 2))
# players are now update with their new skill_level and skill_uncertainty
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- Feel satisfied.