Round Robin Tournament Scheduling

Learning the Basics

liamcedric · 4 · 4162


  • Newbie
  • *
    • Posts: 2
on: October 02, 2017, 12:33:59 AM
Hello Round Robin Community,

I am a CompSci Major in college and have decided to create a program that uses Round Robin Scheduling for my Capstone Project. I am working with my schools basketball team, to create a program for them that will schedule practice games in which "each member of the team plays against each team member equally." I put this in quotations because that was a stipulation from the coach. However, after a brief review of this website I understand that this is not possible in most circumstances. I am posting here for insight or direction on how I should approach this program.

My Program will include the following.
The program will have 3 user inputs:
1. Total # of players - estimating 5 to 20 players
2. Players per team - 4 options (2v2, 3v3, 4v4, 5v5)
3. Total # of courts available - estimating 1 to 4 courts available

Program Outputs:
Game Schedule - includes which players are playing and on which court for each round.  & "bye" players indicated each round if applicable.

The end goal is to use the results as player rankings that will decide the starting roster. I understand that using Round Robin Scheduling creates a "fair" tournament. My main concern is choosing which algorithm to use (whist,Cyclic,Social Squares) for each scenario. Like a 3v3 Schedule with 11 players compared to a 3v3 with 16 players.

My other concern is the total number of rounds needed to be "fair". I would hope the number of rounds would be reasonable to play in a few practices so it doesn't take up to much time.

If I have posted this in the wrong area please let me know. I'm writing this post after a only a couple hours researching this subject, so any pointers or links for better understanding how I should set up this would be appreciated.

- Liam

Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1136
Reply #1 on: October 02, 2017, 11:51:54 AM
You always have teams of 2 or more, so to be truly fair you need to consider who you play with as well as who you play against.   This is what Whist does for 2 vs 2. Beyond that there are generalized whist designs (see this thread for some 3 vs 3).  However all of this is restricted to rounds of simultaneous play where there is at most one bye per round.   To handle other scenarios with 2 or more byes, you will need to compromise on what factors are balanced.   There are essentially three factors - does each player participate in the same number of games, balance for team partners, and balance for opponents.  I favour an approach that picks a random starting schedule and then applies an iterative improvement approach.  One word of warning though, it's actually very difficult to find the fully balanced whist schedules using this approach, so you may want to implement those separately.
« Last Edit: October 02, 2017, 11:52:07 AM by Ian »


  • Newbie
  • *
    • Posts: 2
Reply #2 on: October 03, 2017, 11:10:16 PM
Thanks for the reply. For starters, I think that I will mainly focus on the factor of "each player participates in the same number of games".  I understand that balancing partners and opponents is important for a fair schedule but for now I think it will do the job.

I hope to finish a rough program that focuses on "equal number of games played" for the coach to use ASAP. Then slowly test and implements "an iterative improvement approach" as you suggested. When that time comes I hope you don't mind if I bug you some more.


  • Senior Member
  • ****
    • Posts: 127
Reply #3 on: October 04, 2017, 07:35:50 AM
This is something I put together a few years ago.  My emphasis was on chess so I didn't have a need to assign partners as well as opponents. rrpair.php.