Сейчас я работаю над викториной. Я написал класс Team, класс Question и класс Round.
Это мой класс Team (Я не буду публиковать свойства, конструкторы и методы, поскольку они не имеют отношения к моему вопросу ).
public class Team
{
private int _teamNumber = 0;
private int _score = 0;
}
А это мой класс Раунда.:
public class Round
{
Team[] _teams = new Team[4];
Question[] _questions = new Clue[30];
bool _done = true;
}
Проблема, с которой я столкнулся, заключается в том, что делать в случае ничьей. Есть 8 команд. По два победителя в каждом из первых двух раундов (По 4 команды в каждой )пройдут в третий и последний раунды.
Так что на случай, если случится что-то подобное:
currentRound.Teams[0].Score = 300;
currentRound.Teams[1].Score = 300;
currentRound.Teams[2].Score = 100;
currentRound.Teams[3].Score = 350;
Как видите, 2-е место равно.
Я знаю, что могу проверить на повторы, но что, если у команд есть очки вроде
500, 400, 200, 200
или
500, 500, 200, 100
В этом случае нет необходимости в тай-брейке, так как только две лучшие команды проходят в следующий раунд.
Так что мне интересно, может ли кто-нибудь помочь мне придумать алгоритм, который поможет определить, нужна ли мне ничья -Разрыв раунда или нет. И если да, то какие команды мы должны выбрать и, наконец, какие две лучшие команды в каждом раунде.
Спасибо за внимание!