Create a game schedule for multiple teams, rounds and games
This tool helps you create balanced game schedules for events where multiple "Jungscharen" (youth groups) with different numbers of teams compete in various games across multiple rounds. The application ensures fair distribution of games among teams and balanced matchups between different youth groups.
- Multi-Group Support: Handle multiple Jungscharen with different numbers of teams
- Balanced Scheduling: Ensures fair distribution of games and matchups
- Excel Export: Automatically generates detailed Excel reports
- Real-time Progress: Shows optimization progress with a progress bar
- Customizable Games: Define your own game names and quantities
- Python 3.8 or higher
- Required Python packages:
pip install PySide6 pandas numpy openpyxl
- Download or clone the repository
- Install the required dependencies
- Run the application:
python main.py
- Set Number of Jungscharen: Use the spin box to specify how many Jungscharen will participate
- Configure Each Jungschar:
- In the "Jungschar Name" column, enter the name of each Jungschar
- In the "Anzahl Gruppen" column, specify how many teams each Jungschar has
- The tool will automatically update the group naming table
- Set Number of Games: Use the spin box to specify how many different games will be played simultaneously in each round
- Name Your Games: In the game names table, enter descriptive names for each game (e.g., "Football", "Basketball", "Volleyball")
- Configure Rounds: Use the spin box to set how many rounds the tournament will have
- Click "Generate": Press the generate button to start the optimization process
- Monitor Progress: Watch the progress bar as the algorithm finds the optimal schedule
- Wait for Completion: The process typically takes a few minutes depending on complexity
After generation, the tool will:
- Display the final cost/quality score in the console
- Show statistics about team matchups and game distribution
- Automatically save results to
schedule.xlsx
The tool generates an Excel file (schedule.xlsx) with multiple sheets:
- Rows: Each round of the tournament
- Columns: Each game type
- Content: Team matchups in format "Jungschar.Team vs Jungschar.Team"
- Shows how many times each game was played
- Helps verify balanced game distribution
- Lists all team pairings and how often they played against each other
- Ensures fair matchup distribution
- Shows how many times each team played each game
- Verifies that all teams get equal opportunities
The algorithm optimizes for:
- Balanced Game Distribution: Each game should be played roughly the same number of times
- Fair Team Participation: Each team should play approximately the same number of games
- Diverse Matchups: Teams should play against different opponents
- Equal Game Exposure: Each team should experience all game types fairly
- Team Numbers: Try to have similar numbers of teams per Jungschar
- Sufficient Rounds: More rounds allow better balance (aim for at least 3-5 rounds)