Closed omikulcik closed 11 months ago
Thanks for the questions.
I want to quickly answer number 2: you can have a tournament be one phase by setting stageTwo.format = null
(which is the default). I have no plans to make it a variable number of stages beyond 2.
I will answer your other questions later today when time permits. I want to describe the pairing algorithm in sufficient detail.
So the Blossom algorithm is just a way to maximize matching in a weighted graph. In our application, each player is a vertex, and each potential pairing is a path. For it to work as a Swiss pairing system, weights are assigned based on several factors:
To address your remaining questions:
1 - Players are more likely to be paired with others who are close in sorted value - sometimes this is an assigned rank, sometimes it is a rating of skill. Pairing in halves, as you describe Challonge doing, it easy to implement for round 1, but more difficult for future rounds (using the system as it is currently built). I can make an option for the first round.
3 - I do think the lowest valued player in the first round should get the bye, and I think having a separate procedure for round 1 might be in order.
Let me know what you think!
Thank you for your explanation. I did a further research and it seems that the Blossom algorithm is the right one for chess and I will be running petanque etc. tournaments that use different algorithm. Nevermind, I will probably code my own algo.
Thank you very much for your time and kindness.
To be clear, I didn't design the pairing algorithm (or choose the blossom algorithm) based on chess - in fact, trading card games like Magic: the Gathering are my main experience. The type of pairing you described and showed, with 1 vs 4, 2 vs 5, etc, is actually how chess does pairings. So what you want is closely related to chess.
Hi @slashinfty, thank you for creating this library. It is really helpful! I just have a few questions and it would be really kind of you to help me.
ascending
anddescending
and the matches were paired like 1-2, 3-4, 5-6. See the output bellow.Thank you very much! If any of these is not possible I may help with the development.