Ordering tennis sessions so that no player plays with anyone again Suppose there are 16 players who wish to play doubles on 4 courts i.e. 4 matches are played simultaneously. After all players have finished their current match, they change partners and opponents, and start a new round of matches. If each player refuses to play with someone he/she has played with before (either as a partner or opponent), what is the maximum number of rounds that can be played, and what is an efficient/intuitive method of scheduling the matches?
My approach was to label the players A to P, arrange them in a grid:
A B C D
E F G H
I J K L
M N O P

and take rows: A-B vs C-D, until M-N vs O-P. I could also take columns: A-E vs I-M, until D-H vs L-P. (2 rounds so far)
Shifting the rows:
A B C D
F G H E
K L I J
P M N O

gave another set of columns: A-F vs K-P, until D-E vs J-O. (3 rounds so far)
Shifting again doesn't work as e.g. A has already played against I:
A B C D
G H E F
I J K L
O P M N

If we relax the condition such that each player is now willing to play against a former partner, or partner a former opponent, what is the new solution?
More generally, if instead of 16 players on 4 courts, we have 4 n players on n courts, how is the solution changed?
 A: For the original problem you mentioned (each pair appears on the same court at most once):
Here's a reworking of your shift algorithm that gives a different perspective on where things go wrong.  To each player we associate a point $(x,y)$ where $0 \leq x,y \leq 3$.  Each set of matches in your construction then can be thought of as pairing players together based on a value of a certain linear function.


*

*Set 1: Players are assigned a court based on the value of $x$.

*Set 2: Players are assigned a court based on the value of $y$

*Set 3 (shift $1$): Players are assigned a court based on the value of $y-x \mod 4$.

*Set 4 (shift $2$): Players are assigned a court based on the value of $y-2x \mod 4$

*Set 5 (shift $3$): Players are assigned a court based on the value of $y-3x \mod 4$.  


Ignore the first set of matches for a moment.  Then the remaining four sets all have the form "Players are assigned based off of $y-kx$" (set $2$ corresponds to $k=0$).  We want to make sure that players are never together more than once.  This corresponds to saying "knowing $(x_1, y_1)$ and $(x_2, y_2)$, there's never more than $1$ value of $k$ that puts them together. Given the two points, we should be able to determine $k$". In other words, we should always be able to solve the equation
$$y_1-kx_1=y_2-kx_2$$
for $k$.  
This is a linear equation in $k$, and what we'd like to do is solve it the way we would any other linear equation, getting 
$$k=\frac{y_1-y_2}{x_1-x_2}.$$
The trouble is that we're working modulo $4$, and we can't always divide by $x_1-x_2$ even when $x_1-x_2 \neq 0$.  So in some cases we may have more than one solution for $k$, corresponding to two people meeting more than once (e.g. the example you mentioned where $(0,0)$ and $(0,2)$ are together for both $k=0$ and $k=2$).    
The way to fix this is to replace your "mod $4$" grid by a grid where we actually can divide.  Do the same construction as before, but now replace $\{0,1,2,3\}$ by $\{0,1,a,b\}$, the four elements of a Finite Field of Order $4$ (both in the coordinates $x$ and $y$ and in the definition of the sets themselves.  So one of the sets of matches will involve putting people together that share a common value of $x-ay$). 
Mathematically, the object we're constructing in this fashion is known as a Finite Affine Plane.
