- 24 Jun '03 23:35First off excellent site, I have four games going and have drawn in both my father in law and a friend.

My question is this. In general I understand that you gain points for winning matches and lose points for losing.

Could you please point me towards a detailed explanation of how the points are assigned.

Thanks

Greg - 24 Jun '03 23:47 / 1 editJust realised that while the above instructions deal with exactly how (ie the formula) for ratings calculation it doesn't really help to explain it in easy to understand terms (not easy for me to understand anyway!).

At the end of a game the points are decided by the ratings of the two players at the end of the game. If white has a much higher rating than black (eg 200+ points more) then white will receive (and black lose) very few points (since it is "expected" that white would win given the higher rating). If black were to win then white could expect to lose a large number of points (without closely reading through no. 9 of the FAQ I think that the maximum loss/gain regardless of rating is 32 points). Draws work in a similar fashion, but in this instance white would lose a few points and black would gain a few.

That's pretty brief and off the top of my head so not exhaustive and possibly not 100% accurate.

T1000 - 27 Jun '03 21:55

That's correct as long as your rating is lower than 2100.*Originally posted by T1000***... I think that the maximum loss/gain regardless of rating is 32 points). ...T1000**

If your rating between 2100 and 2399 you may loose not more than 24 points in a game but there is only one person at the moment having that benefit

If you are one of those who want to find out their potential win/loss in advance you can set up the following in Excel:

Type your current rating in cell A1 and the opponent's rating in A2

To calculate your rating in case of a win use the following formula in A3:

=ROUND(A1+IF(A1<2099;32;IF(A1<2399;24;IF(A1>=2400;16)))*(1-(1/(10^((A2-A1)/400)+1)));0)

To calculate your rating in case you'll loose use the follwing formula in A4:

=ROUND(A1-IF(A1<2099;32;IF(A1<2399;24;IF(A1>=2400;16)))*(1-(1/(10^(-(A2-A1)/400)+1)));0)

For an expected draw us the follwing in A5:

=(A3+A4)/2

Gotti - 27 Jun '03 23:06

It doens't with work with me, I fill in (for example) my game against DigitGus wich I am winning: I fill in 1668 in A1 and 1699 in A2, I copy the formula in A3 and press enter...it gives me an error... I use Microsoft Office 2000, so I use Excel 2000.*Originally posted by gotti2000***That's correct as long as your rating is lower than 2100.**

If your rating between 2100 and 2399 you may loose not more than 24 points in a game but there is only one person at the moment having that benefit

If you are one of those who want to find out their potential win/loss in advance you can set up the following in Excel:

Type your current rat ...[text shortened]... (10^(-(A2-A1)/400)+1)));0)

For an expected draw us the follwing in A5:

=(A3+A4)/2

Gotti

Olav - 27 Jun '03 23:37 / 4 edits

Hmm, I guess the problem is my generic translation, I didn't test this on an English system but only on a German one.*Originally posted by LivingLegend*

[b]It doens't with work with me...

Well, the key is to change all the semicolons ( to colons (,) because the default separator on UK/US systems is the colon as far as I know.

The following should work for you:

=ROUND(A1+IF(A1<2099,32,IF(A1<2399,24,IF(A1>=2400,16)))*(1-(1/(10^((A2-A1)/400)+1))),0)

{To be more precise the separator in your formula must match the 'list separator' setting in the menu Start>Control Panel>Regional Settings>Numbers>list separator (2nd option from bottom)}

Another issue may be the language EXCEL is using. On my German Excel I have to use RUNDEN instead of ROUND and WENN instead of IF.

I can't believe that they even translated those keywords into German!

Anyway if you are using a dutch version you'll find the proper translation. However, if you are using Chinese ... .

You can get a list of all functions in your language if you hit the function symbol (fx) in Excel which is between the sum symbol and the sort symbol.

Sorry, hope I didn't confuse you too much. If you've problems let me know.

gg - 27 Jun '03 23:51I just wrote a quicky little web app to compute the ratings

http://www7.brinkster.com/obyrne/rhp_rc.htm

Now I'm not sure if the algorithm is quite right, because according to this tool I should have gotten 29 points for my latest victory and yet I got only 22...hmmm...grand conspiracy.

I don't want too much traffic over there so if someone wants to bring the little tool in house they can email me at gregoftheweb@hotmail.com. - 28 Jun '03 00:06 / 1 edit

Thanks for that. It makes life easier in an international environment. Nevertheless, your algorythm seems to be wrong.*Originally posted by gregoftheweb***I just wrote a quicky little web app to compute the ratings**

http://www7.brinkster.com/obyrne/rhp_rc.htm

When I use 1200 for MyRating and 1338 for OpponentRating I get 1222 for a win, 1190 for a lost game and 1206 for a draw. Which was the situation when you won against janwenting. Remember the new rating is calculated at the moment you finished the game. In most lists (e.g. Public Games) on RHP they display your current rating not the rating when you finished that particular game.

You may want to double-check your formula with mine and include that in your tool. It's quite cool!

Cheers,

gg - 28 Jun '03 00:42 / 1 editI checked the formula in your code. It's correct as such but something weird happens with the power operator (^) in

nWinExpectancy = 1 / (10^((nOpponentRate-nMyRate)/400)+1)

The correct way to do exponential math in java-script is:

Math.pow(base, exponent)

You have to change the win expectancy code to following:

//set win expectancy

nWinExpectancy = 1 / (Math.pow(10,((nOpponentRate-nMyRate)/400))+1)

My2cents

gg