CoopetitionELO

From #openttdcoop wiki

Revision as of 14:16, 22 August 2006 by Osai (Talk | contribs) (added the %k_factor for rating <=800)

Jump to: navigation, search

To get a fair ranking we are using the ELO-Rating which is very popular, well-known and used in sports like Chess and Go.

The Calculation-Routine

function new_ELO_rating($team1_score, $team1_rating, $team2_rating)
{
	$k_factor = 32;
	$rating_expected = 1 /(1+10^(($team2_rating-$team1_rating)/400));
	$new_rating = $team1_rating + ($k_factor * ($team1_score - $rating_expected));
	return $new_rating;
}

$team1_score: 1 (win), 0,5 (draw), 0 (lost)

$team1_rating: the old rating of team1

$team2_rating: the old rating of team2


How much points a team gain or loose depends on the expected rating: I.e. Garri Kasparow (Elo: 2806) looses against Zsuzsa Polgar (Elo: 2577), its expected that Garri Kasparow wins with 0,789 (=78,9%) In the next step he will loose more points, because it was more expacted he wins! How many points he will loose depends on the $k_factor, the $k_factor changes with the stats (games played, rating) of a player/team. The FIDE made some proposals for this $factor some time ago, which DON'T fit to our ladder, instead we will use our own $k_factor's

Here are our owns:

Ratings $k_factor
<1200 32
>= 1200 24
>= 1400 16
>= 1600 8
<= 800 64
Powered by MediaWiki