C #викторина :Что делать в случае ничьей?

Сейчас я работаю над викториной. Я написал класс 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

В этом случае нет необходимости в тай-брейке, так как только две лучшие команды проходят в следующий раунд.

Так что мне интересно, может ли кто-нибудь помочь мне придумать алгоритм, который поможет определить, нужна ли мне ничья -Разрыв раунда или нет. И если да, то какие команды мы должны выбрать и, наконец, какие две лучшие команды в каждом раунде.

Спасибо за внимание!

5
задан Daniel A. White 6 March 2017 в 03:07
поделиться