#rating #elo #skill #glicko

glicko2

Implementation of the glicko2 rating system

6 releases

Uses old Rust 2015

0.3.1 Feb 10, 2020
0.3.0 Nov 30, 2017
0.2.0 Nov 28, 2017
0.1.2 Nov 11, 2017
0.1.1 Oct 24, 2017

#796 in Algorithms

33 downloads per month

MIT/Apache

19KB
285 lines

glicko2

glicko2 crate glicko2 documentation

This crate implements the glicko2 rating system. It's a rating system appropriate for rating a team or player and is leveraged by many chess leagues.

Usage

This example comes straight from the glicko2 rating pdf:

extern crate glicko2;

use glicko2::{GameResult, GlickoRating};

fn main() {
    let example_rating = GlickoRating {
        value: 1500.0,
        deviation: 200.0,
    };
    let mut results = vec![];
    results.push(GameResult::win(GlickoRating {
        value: 1400.0,
        deviation: 30.0,
    }));
    results.push(GameResult::loss(GlickoRating {
        value: 1550.0,
        deviation: 100.0,
    }));
    results.push(GameResult::loss(GlickoRating {
        value: 1700.0,
        deviation: 300.0,
    }));
    // We are converting the result of new_rating to a GlickoRating immediately, throwing away the
    // benefits of Glicko2 over Glicko for the sake of matching the example in the glicko2 pdf.
    // In a real application, you'd likely want to save the Glicko2Rating and convert to
    // GlickoRating for display purposes only.
    let new_rating: GlickoRating = glicko2::new_rating(example_rating.into(), &results, 0.5).into();
    println!(
        "New rating value: {} New rating deviation: {}",
        new_rating.value,
        new_rating.deviation
    );
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps