The following solution might not be the best, but see if it works for you.
I start by creating a structure to hold each Game
public struct Game {
private int TeamA;
private int TeamB;
private bool GamePlayed;
// I am adding this to quickly see what team is playing. I used this for debugging
// purposes to make sure the same team doesn't play another team twice.
public override ToString() {
return TeamA.ToString() + " vs. " + TeamB.ToString();
}
}
Then I create a List that comtains all the different combinations of 10 teams playing each other. There should be 45.
List<Game> AllGamesInSchedule = new List<Game>();
for (int i = 1; i <= 10; i++) {
for (int j = (i + 1); j <= 10; j++) {
AllGamesInSchedule.Add(new Game(i, j));
}
}
// This prints all the different game combinations out to the console to see
// that they are all different.
foreach (Game game in AllGamesInSchedule) {
Console.WriteLine(game.ToString());
}
Now you can create a method that picks games out of this List. Once a game is picked out, change the GamePlayed field to true to know that you shouldn't pick this match again. Or you could just remove the game from the list.
You said you wanted guidance and that is why I didn't create the method to pick games out.
Hopes this helps.