Each year I am part of a group that hosts a "Lawn Game Olympics." 6 different lawn games (boccee, ladder golf, washer toss etc...) and every year a different amount of teams shows up. The first year was an unbalanced schedule and the drama that ensued was ridiculous, so i've set out to create a balanced schedule with a program that we can just punch in the amount of teams.
The issue is everyone wants to play eachother, or everyone wants to play the same game the same amount of times with a great effort and playing every team.
The traditional round robin formula only works for 13 teams with 1 bye, as it just happens to rotate around 6 games. Using the technique below, its simple (with 14 being a bye, and each line being a different game)
13 teams never happens, just my luck, and i cannot figure anything out for any other amount of teams. I have seemingly tried everything. The closest i've gotten is using combinatorics to generate all the matchups then try to brute force them together tracking whos played who and what etc.. but that still never works before crashing.
The ideal scenario, is every team plays each game twice (12 games per team). The other scenario would be each team playing eachother, with what games they played being luck of the draw, as long as each game is played at least 1 time, and no game is played 3 times when another has been played once.
Does anyone know if this is even possible? If it is, can i get a point in the right direction?