Dear All,
I'm running a six player chess tournament this weekend. When I sat down to work out the schedule I found it surprisingly difficult. It's easy to work out who plays who in each round, but what about the colours? I wanted to avoid any player having the same colour for three rounds in a row and I wanted each player's colours to alternate as much as possible.
This is what I ended up doing:
1) Created a simple cyclic schedule to determine who plays who in each of the five rounds:
1 2 3
6 5 4
1 6 2
5 4 3
1 5 6
4 3 2
1 4 5
3 2 6
1 3 4
2 6 5
2) Decided that player 1 would have a perfect white/black mix, starting with white.
3) Decided that player 6 would have a perfect white/black mix, starting with black (player 6 chosen because he is playing player 1 in the first round so I knew his colour that round).
4) Wrote out each players colours for each round, leaving a blank where it was yet to be determined.
5) Looked for runs of two whites or two blacks in the lists generated by step 4, and put the opposite colour on either side of these to ensure there wouldn't be three of the same colour in a row.
Thus ending up with:
Round 1: 1v6 2v5 4v3
Round 2: 5v1 6v4 3v2
Round 3: 1v4 5v3 2v6
Round 4: 3v1 4v2 6v5
Round 5: 1v2 3v6 5v4
(First player is White).
Player 1: WBWBW
Player 2: WBWBB
Player 3: BWBWW
Player 4: WBBWB
Player 5: BWWBW
Player 6: BWBWB
This worked fine and by fluke no player is the same colour twice in a row more than one, which is good, but I can't help feeling that there was no guarantee that step 5 would work. Is there a robust algorithm for doing this sort of thing?
Thanks,
Jon