Chess club ranking system
The ranking system has two sections:
Could merge the two into one section.
Ladder rankings can be reset annually. The ladder rankings are relative. E.g. rank 1 means best player among other players
Rules:
rank = rank + 1
rank = rank + 1
rank = rank - math.ceil((higher rank - lower rank) / 2)
((wins + (draws / 2)) / (wins + draws + losses)) * 100
Examples:
Example A: simple example to demonstrate lower ranked player beating a higher ranked player
----------
10: Jim
11: Bob
Bob beat Jim
Jim's new rank: 10 + 1 = 11
Bob's new rank: 11 - ceil((11 - 10) / 2) = 11 - 1 = 10
10: Bob
11: Jim
Example B: a more complicated example; should we allow ties?
----------
1: Alice
2: Bob
3: Chuck
4: Dave
Chuck beat Alice.
Alice's new rank: 1 + 1 = 2
Chuck's new rank: 3 - ceil((3-1)/2) = 3 - 1 = 2
now no one is ranked #1 or #3, we can either start rankings from first empty spot
1: Alice 1: Alice
1: Bob then Dave beats Chuck 1: Bob
1: Chuck (using displayed rank) 2: Dave
4: Dave 2: Chuck
or show actual rankings and hide empty rankings
2: Alice 2: Alice
2: Bob then Dave beats Chuck 2: Bob
2: Chuck 3: Chuck
4: Dave 3: Dave
5: Eve 5: Eve
or show actual rankings and display empty rankings
1: - 1: -
2: Alice, Bob, Chuck 2: Alice, Bob
3: - 3: Chuck, Dave
4: Dave then Dave beats Chuck 4: -
5: Eve 5: Eve
Example C: same as B but no ties allowed
---------
1: Alice 1: Chuck
2: Bob Chuck beat Alice 2: Bob
3: Chuck 3: Alice
this can get a lot more complicated, for example
1: Alice
2: Bob
3: Chuck
4: Dave
what are the rankings if Dave beats Alice?