"As good as possible" assumes that there is some criterion by which it is possible to measure how good the schedule is - but there are a lot of competing factors here - the number of times pairs of players partner, oppose, or play on the same court together, the number of games and byes each player has, and finally the balance for top/bottom. These could all be weighted differently, so there is no single best criterion, but the approach you need would be to consider these factors carefully and design a search algorithm to look for an optimal schedule. Unfortunately, I don't have software that can help here.

I am guessing some of the schedules you have for 4n players, or 4n+1 players, may have been cut down from Whist schedules. If you select any 7 rounds from one of these, this might well leave one pair together three times, while another pair never meets.

If you post the schedule that you have for 14 players, then I will have a look at it, and see if there is any improvement that I can offer.

Hi Ian, sorry for the delay in getting back to you.

An example of what I'm talking about is here on these pickleball round robin sheets:

RR-Charts.pdf (bendpickleballclub.com) I'm guessing they just used one of the many free round robin generators to generate the schedules for various numbers of players.

If you look at the 14-player sheet, you'll see (for instance) that Player 2 is on the same court as some players once, some players twice, and even plays on the same court as Player 12 THREE times....but never plays on the same court as Player 5.

I guess what I'm not understanding is that this seems to me to be simple from a computational perspective (although I freely admit that since what I'm looking for doesn't seem to currently exist, there' may very well be some factor of difficulty that I'm overlooking). It seems to me that the scheduler should just do this:

- Start in Round 1. For Player 1, search for three other random players to add to the court in that round. Criteria: find the count of how many times Player 1 has played against every other player, then make sure to always pick the three random players from among whom Player 1 has played the least (obviously, in Round 1, Player 1 would not have played anyone, so the three random "other players" could be anybody. However, in later rounds, this pool of available random players would be less and less). This way you won't have Player 1 on the same court as Player 3 a bunch of times, but never played on the same court as Player 12.
- Continue this for all players from 1 to n, where n is the total number of players. If there are any "extra players" at the end of this process (i.e. if n is not divisible by 4), put them down as "byes" who don't play that round...with the caveat that no one who's already had a bye should have ANOTHER bye if there's a player who hasn't had a bye yet.
- Do this for as many rounds as necessary (ideally, for our purposes, 7 rounds).

I know I mentioned other criteria (dividing up who's on top/bottom equally, etc), but even if we could do this minimum thing (have players on the same court as all the other players as equally as possible), that would be an improvement.