Skip to Content
 

Player ranking algorithm wanted

8 replies [Last post]
nickdanger
Offline
Joined: 12/31/1969

Not truly board game related, but there's some creative minds around here so I'm hoping for a spark.

Background:
I wrote the program that we use to track production in this joint. One of the things I do to keep sane is add in little "break time" games that people can play. Being a competitive person I always write a little stats routine to see who's best at any particular game.

I'm wrapping up my version of "Deal or no deal" to add to it and wanted to do something a little different for the rankings. I was just planning on using an "average win" to rank the players, but would like to get a bit fancier and do something like:

average winning amount
plus
add in something for the best amount they won so far
subract
something for the worst result they've had
add
something for the more games played to encourage more plays and not
rest on your laurels of a few good rounds.

But still keep it mostly weighted on average winning amount.

Anybody have any ideas of some kind of formula that might fit in with that thinking? Or any other ideas rather than strictly best average finish?

Thanks for any ideas.

--
Nick

seo
seo's picture
Offline
Joined: 07/21/2008
Player ranking algorithm wanted

Not sure what exactly you'r easking for, but maybe something like:

Avg.Win.Amo*X + Best.Amo + Worst.Amo + Total.Games.Played*Y

The bigger X is the more wheight you place on Average Winning Amount.

The Bigger Y is the more wheight you place on Total Games Played (this might need some extra algorithm if # of games played varies too much among players, maybe something like int(TGP / Z)*Y

Best and Worst amounts they've won are both added. Worst amount should not be substracted (or the worst your worst result has been the better ranking points you'll get, which makes no sense).

HTH,

Seo

Zzzzz
Zzzzz's picture
Offline
Joined: 06/20/2008
Player ranking algorithm wanted

You could calculate an overall average of money won per game played. Then create a formula to add or subtract points from a player based on their high and low winnings.

For example over 10 games played by Joe the winning amounts where
10,500
134,700
700,000
243,400
201,000
504,900
333,000
57,000
89,000
77,500

If these where the only games played, your average winning amount would be the total (2351000) divided by the 10 games played. Thus the average would be 235,100.

At this point I would take the high and low gamed played by each player and caculate the different from the average. Then I would add or subtract 1 point from their ranking score, for say each $1000 difference.

At this point you have a good ranking based on high and low winnings. But it does not take into account number of games played. So, I would alter the player ranking based on the average number of games played.

How I would do this, modify the idea just above by games played. I would modify the 1 point added or subtracted from the rankings by the games played. To do this I would take the number of times the each player and divide it by the average number of games played by all players creating a ranking ratio (say ratio is called X).

I would then multiple the 1 point ranking changed by X. So for example, lets say the average number of games played is 15. With my player Joe scores above only played 10 times. I would take a ratio of 10/15 or .67 and multiple it by 1. So my player would only get .67 ranking points per $1000 difference. But if another player played 20 games, they would have had 20/15 or 1.33 per $1000. Thus altering their ranking a little as a result playing beyond average. This will also effect those people that dont want to play after a few *good* wins. Since their multipler for gaining rank will get reduced for underplaying. But this could also hurt for overplaying since your ratio will go bigger and if your worst game from average is bigger than your best winnings from average, your ranking will drop pretty good.

Not sure if any of this makes sense in writing, but it does in my warped head.

Scurra
Scurra's picture
Offline
Joined: 09/11/2008
Player ranking algorithm wanted

I'm not sure that's ausing the high and low result is good idea with Deal or No Deal. The game* is structured to produce a middling result rather than extremes over a long series, but individual results are more likely to be extreme in themselves. I've played a few comparison sequence runs with others and we always discount the highest and lowest results before working out averages etc. I certainly don't think you need anything that tracks number of plays because the sheer arbitrariness of it makes that somewhat pointless.

OTOH calculating a much wider range of averages would be at least slightly interesting; comparing a player's mean to the median and mode of all players etc.

(*I'm not sure I'm willing to dignify it with the name of a "game". Sure, all the TV versions I've seen have been excellent pieces of unscripted drama, but there's no actual game in there at all!)

nickdanger
Offline
Joined: 12/31/1969
Player ranking algorithm wanted

Thanks for the ideas guys!

I think I'll give them all a shot with some actual data and see if I like the results.

Scurra - the reason I want to factor in the high/low games is that it adds more risk/payoff to pushing your luck. If you drop out early you'll never get a real high or low amount. Factoring those in just makes pushing on in the game a bit more daring. One high or low score if averaged among a bunch of games doesn't carry a lot of weight, I just want to give it some clought.

And I agree it's not much of a "game", but it works for some inter-office rivalry among what are basically a bunch of non-gamers.

FastLearner
Offline
Joined: 12/31/1969
Player ranking algorithm wanted

Entirely off the top of my head, but it feels reasonable at first blush.

C is a constant number of games, based on a reasonable divisor of how many you think folks will play. Roughly 1/3 or 1/4 of the average number of games you think folks will play, like 5 if you think 15-20 games is a good average.

F is the modifying factor that the high score will be multiplied by and the low score divided by.

F = TotalGamesPlayed / C
(don't round or floor or such, as will be to chunky)

Total Score = Average((HighestScore * F) + Sum(ScoresExceptLowAndHigh) + (LowestScore / F))

Such that the more games you play, the more your high can help you and the more your low hurts you.

Of course, not having tried it, it might all work out in the wash and not affect things much, but if your lowest is a pretty middling score then your average should go up quite nicely as you play more games, while if your highest is pretty middling then your score will sink as more games are played unless you score big, but not too quickly.

FastLearner
Offline
Joined: 12/31/1969
Player ranking algorithm wanted

Another thought, you may be able to do the whole thing more easily if it's just

Score = Average(HighestScore, MedianScore, LowestScore)

A new high will definitely improve your score nicely, an new low will definitely lower your score nicely, and anything in-between will either edge your score up or down, depending on whether it's higher or lower than your middlemost score.

-- Matthew

FastLearner
Offline
Joined: 12/31/1969
Player ranking algorithm wanted

Hmm, thinking, my second suggstion doesn't prevent you from resting on your laurels, but the first one would as good players would soon zoom past you.

-- Matthew

nickdanger
Offline
Joined: 12/31/1969
Player ranking algorithm wanted

Thanks again for the suggestions. Here's what I'm thnking about going with, let me know of any thoughts:

Rating = ((Average Score * 3) + (Lowest Score * 2) + Highest Score) * (Games Played * .01)

Unless games played is over 100, then disregard the last part.

My thinking is to put a bit more weight on the average, and to also make the risk of failure a bit greater by doubling the influence of your worst game. Plus only using a percentage of the rating until 100 games are played.

I'm wondering if I need to maybe up the average score to a (*4) or more though?

Thoughts?

Syndicate content


forum | by Dr. Radut