online-go / online-go.com

Source code for the Online-Go.com web interface
https://online-go.com/
GNU Affero General Public License v3.0
1.26k stars 346 forks source link

Elimination tournaments with ties might award "silver" to a non-finalist #2521

Closed dexonsmith closed 9 months ago

dexonsmith commented 9 months ago

Tournament rankings are ordered by eliminated,-points,-SOS,-SODOS. Points are awarded at each round: +1 for win, +0.5 for tie, +0 for loss, +1 for bye.

In (single and double) elimination tournaments, the finalists should always get 1st (gold) and 2nd (silver) place. Without draws, this is guaranteed mathematically, but with draws (either by moderator decision, or naturally per #657) it might in special situations be awarded to someone else.

Here's what happens for (single and double) elimination tournaments:

This will need a backend fix (and it's not immediately clear how to resolve it), but putting the issue here for visibility.

dexonsmith commented 9 months ago

Here's where this came up in the forums: https://forums.online-go.com/t/jigo-implementation/20891/243

dexonsmith commented 9 months ago

After discussing in the forums, the plan is to give +1 for a win, tie, or bye in elimination tournaments, so that the points are in decreasing order of elimination. The related, but distinct, net_points field in the API will not change, and will remain +1 for a win and +0.5 for a tie. This means that the sos and sodos tie-breaker fields will also not change, since they are based on net_points.

dexonsmith commented 9 months ago

Created an example of this at https://beta.online-go.com/tournament/193 to confirm it behaves as expected.

The final results:

The final results have:

  1. dexonsmith-beta (makes sense)
  2. dexonsmith-beta2 (bug, as expected... this player lost ALL of their games)
  3. dexonsmith-beta3 (bug, as expected... this player was in the final, and should be awarded 2nd place)
BHydden commented 9 months ago

You could always just keep making rounds until all but one player have lost twice and been eliminated

dexonsmith commented 9 months ago

I think you're talking about https://forums.online-go.com/t/update-to-double-elimination-tournament/50521, but that's not what #2521 / this issue is about. Notice that in my example tournament, everyone but the winner DID lose twice. There would be no additional rounds.

The fix here is to change elimination tournaments to give +1 tournament points for a win, draw, or bye, which will cause trophies to be assigned in reverse order of elimination (just like they are when there are no draws). I actually have a backend fix mostly ready, but I wanted to actually trigger the until-now-hypothetical bug so I was sure I understood how to test the fix.