Следующее решение может быть не лучшим, но посмотрите, работает ли оно для вас.
Я начинаю с создания структуры для каждой игры
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();
}
}
Затем я создаю Список, в который входят все различные комбинации 10 команд, играющих друг с другом. Там должно быть 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());
}
Теперь вы можете создать метод, который выбирает игры из этого списка. Как только игра выбрана, измените поле GamePlayed на true, чтобы знать, что вы не должны выбирать этот матч снова. Или вы можете просто удалить игру из списка.
Вы сказали, что хотели руководства, и поэтому я не создал метод выбора игр.
Надеется, что это поможет.