Thank you for your interest in Coronate. This is a personal project run by myself (John), but I am happy to accept feedback or changes. Keep in mind that I cannot guarantee that I will have the time or capability to address everything. The direction of this project is currently driven by my own use case.
The easiest way to contribute is to open an issue. You can open an issue on GitHub here.
You can also email me here.
I based the pairing and scoring off of USCF guidelines. Relevant chapters of the USCF rulebook are downloadable in PDF form from their website here.
These are the tie-break rules currently implemented:
- § 34E1. Modified Median.
- § 34E2. Solkoff.
- § 34E3. Cumulative.
- § 34E4. Median system (not modified).
- § 34E5. Result between tied players.
- § 34E6. Most blacks.
- § 34E7. Kashdan.
- § 34E8. Sonneborn-Berger.
- § 34E9. Cumulative scores of opposition.
- § 34E10. Opposition’s performance.
- § 34E11. Average rating of opposition.
- § 34E12. Speed play-off game(s).
- § 34E13. Coin flip.
- § 34F. Round robin tiebreaks.
Coronate uses the blossom algorithm to manage pairing. It works by taking a list of every possible matchup, assigning each a value, and letting the algorithm determine which combination of pairings produces the highest overall value.
These are the implemented rules it uses to prioritize pairings, in order of weight:
- § 27A1. Avoid players meeting twice (highest priority).
- § 27A2. Equal scores.
- § 27A3. Upper half vs. lower half.
- § 27A4. Equalizing colors.
- § 27A5. Alternating colors.
- § 29A. Score groups and rank.
- § 29C1. Upper half vs. lower half.
- § 29D. The odd player. (Not technically implemented, but the blossom algorithm should handle this automatically.)
- § 29E3. Due Colors in succeeding rounds.
- § 29E4. Equalization, alternation, and priority of color. (Partially implemented.)
- § Variation 29E4a. Priority based on plus, even, and minus score groups.
- § Variation 29E4b. Alternating priority.
- § Variation 29E4c. Priority based on lot.
- § Variation 29E4d. Priority based on rank.
- § 29E5. Colors vs. ratings.
- 29E5a. The 80-point rule.
- 29E5b. The 200-point rule.
- § 29E6. Color adjustment technique.
I don't use non-USCF rules. If you do use a different rulebook, or wish to use one, then feel free to let me know.
These are ideas I've considered but I haven't had the time or energy to implement.
- Saving and loading user data is fragile and subject to memory leaks. The current implementation is quick-and-dirty and "works" fine, but needs to be more robust.
- The code probably doesn't scale well with large amounts of data.
- Improve the pair-picker view. It should show more information about potential pairings and have a preview & confirmation for the auto-pairings.
- Improve responsiveness across devices.
Tests currently only cover a few of the most fragile functions.
- Add round robin pairings.
- Improve rating calculations.