Hi Chrissy,
wbport's schedule is really very nice indeed. If you look at what happens at any of the 8 rooms in the gap between two rounds (again ignore the first column), one of the kids remains in the room, while the other kid either moves to another room or goes to have a bye. So at every interval 8 kids remain where they are and 8 kids move out of the room. It is easy to see that you can not do better than this, if 9 kids remained fixed, then at least 2 of them would have to be in the same room, and would oppose each other twice in a row, so the schedule could not be valid. So the 8 kids fixed schedule must therefore be optimal.
Look closely at where the kids who move, move to. If they don't get the bye then they always move to an adjacent room, so by assigning the columns carefully to the actual rooms you can minimise the travelling distance between rooms. Also notice that the kid who gets the bye in round r, returns in round (r+1) to the same room that they had in round (r-1), so it would reduce disruption further by telling the kid who gets the bye to wait outside the room they have just left.
If you do have 18 kids, then the schedule is still optimal as kid 18 never moves from room 1, so there are 9 rooms and 9 kids remain fixed between rounds.
It's amazing how wbport's schedule for chess tournaments has this alternative application. If you look for his other postings and the links to the Java script generator then you will be able to make schedules for any number of kids.
I hope the competition goes well.
Ian.