Project Overview
This application generates optimal cornhole tournament brackets with specific requirements for player pairings and opponent variety.
Core Rules
- Creates brackets for a specified number of players
- Organizes games across a specified number of weeks
- Each week contains a specified number of games (default: 3)
- Each week all players play in every game
- Each game consists of two teams with two players each
- Throughout the entire tournament each player must partner with every other player at least once
- Players should not face the same opponents within a single week
- Players should face different opponents across games and weeks as much as possible
- Maximizes variety in opponent pairings
Constraints
- Number of players must be divisible by 4 (to form complete teams)
- Minimum 8 players (2 games per week)
- Maximum games per week is limited by number of players (players/4)
Optimization Priority
- Ensure each player partners with every other player at least once
- Minimize opponent repetition across all weeks
- Balance the distribution of opponents faced by each player
Technical Details
This application is built with Python and Flask. The bracket generation algorithm uses combinatorial optimization techniques to create the most balanced schedule possible given the constraints.