This isn't exactly what it sounds like. A co-worker thought that this might be an interesting puzzle to solve. Monthly, he plays pinochle with a bunch of other couples. Recently his group size increased by one more couple, giving them a total of 14 couples. Prior to now, they had a schedule for games using only 12 partner pairs, but they need a new game schedule to include the new players. Since there are only 3 tables in the setup, only three pairs of partners can play at once, leaving two people on the sidelines.
Here is the challenge, in a nutshell:
Create a pinochle game schedule for 14 players on 3 tables such that all of the following conditions are met:
- Each player sits out of an equal number of games.
- Each player partners with every other player at least once.
- Each player plays against every other player at least once.
- This should all be accomplished within 14 games.
I have created a program to generate these game schedules, and it currently meets all of the conditions except for condition 3. I'm not sure if it is possible to do so, but I think it is.
We know that at least 13 games must be played to meet condition 2, and then to meet condition 1, 14 games must be played. Since each game sees a player playing against 2 players, condition 3 should be easily accomplished in just 14 games.
A program that creates this schedule should allow for changes in the number of players, the number of tables, and the number of games played.
I think that I should make modifications to my program so that it uses a more fuzzy approach, selecting opponents based on a fuzzy logic rating determined from the players' previous opponents and playing frequency. Maybe I'll try that in the next iteration.