Hi Jeff,
This is a good example of a problem that can be solved using a cyclic construction. The key to it is representing the teams by the numbers 0 to N-1 in modulo N arithmetic. This is a cyclic number system where adding one to N-1 takes us back to zero. Now consider the numerical differences between pairs of teams that are matched together. With 18 teams there are 153 possible pairings. 18 of these pairs will have a difference of 1, below I have placed all of these as Match 1. Starting with the first pair of (0 1) all the other 17 pairs with a difference of 1 can be found by adding 1 mod 18 to the pair in the previous round. Match 2 contains all the pairings that differ by 2, Match 3 the differences of 3, and so on. The only tricky point here is realising that for example (2 17) represents a difference of 3 mod 18, this can be seen by adding 3 to 17, by the definition above 17+1=0, so 17+2=1 and 17+3=2.
Match 1 Match 2 Match 3 Match 4 Match 5 Match 6 Match 7 Match 8 Byes
R1 ( 0 1) ( 7 9) ( 2 17) ( 8 12) (10 15) ( 4 16) ( 6 13) ( 3 11) [ 5 14]
R2 ( 1 2) ( 8 10) ( 3 0) ( 9 13) (11 16) ( 5 17) ( 7 14) ( 4 12) [ 6 15]
R3 ( 2 3) ( 9 11) ( 4 1) (10 14) (12 17) ( 6 0) ( 8 15) ( 5 13) [ 7 16]
R4 ( 3 4) (10 12) ( 5 2) (11 15) (13 0) ( 7 1) ( 9 16) ( 6 14) [ 8 17]
R5 ( 4 5) (11 13) ( 6 3) (12 16) (14 1) ( 8 2) (10 17) ( 7 15) [ 9 0]
R6 ( 5 6) (12 14) ( 7 4) (13 17) (15 2) ( 9 3) (11 0) ( 8 16) [10 1]
R7 ( 6 7) (13 15) ( 8 5) (14 0) (16 3) (10 4) (12 1) ( 9 17) [11 2]
R8 ( 7 8) (14 16) ( 9 6) (15 1) (17 4) (11 5) (13 2) (10 0) [12 3]
R9 ( 8 9) (15 17) (10 7) (16 2) ( 0 5) (12 6) (14 3) (11 1) [13 4]
R10 ( 9 10) (16 0) (11 8) (17 3) ( 1 6) (13 7) (15 4) (12 2) [14 5]
R11 (10 11) (17 1) (12 9) ( 0 4) ( 2 7) (14 8) (16 5) (13 3) [15 6]
R12 (11 12) ( 0 2) (13 10) ( 1 5) ( 3 8) (15 9) (17 6) (14 4) [16 7]
R13 (12 13) ( 1 3) (14 11) ( 2 6) ( 4 9) (16 10) ( 0 7) (15 5) [17 8]
R14 (13 14) ( 2 4) (15 12) ( 3 7) ( 5 10) (17 11) ( 1 8) (16 6) [ 0 9]
R15 (14 15) ( 3 5) (16 13) ( 4 8) ( 6 11) ( 0 12) ( 2 9) (17 7) [ 1 10]
R16 (15 16) ( 4 6) (17 14) ( 5 9) ( 7 12) ( 1 13) ( 3 10) ( 0 8) [ 2 11]
R17 (16 17) ( 5 7) ( 0 15) ( 6 10) ( 8 13) ( 2 14) ( 4 11) ( 1 9) [ 3 12]
R18 (17 0) ( 6 8) ( 1 16) ( 7 11) ( 9 14) ( 3 15) ( 5 12) ( 2 10) [ 4 13]
With 8 matches per round above there are 8*18=144 out of the 153 possible pairings. The remaining 9 pairings are the differences of 9, in fact these are the pairs of byes from the first 9 rounds (or the last nine rounds) and if you wanted could be played in a final round (without byes) to complete the all-play-all round-robin.
Note that the problem of finding the schedule can now be reduced to finding just one round of 8 matches covering the differences 1 to 8 mod 18, such that the 18 teams in the round are all different.
Hope that's clear,
Ian.