Я разрабатываю алгоритм планирования турниров, но я столкнулся с проблемой, что 2 одинаковых игрока могут снова встретиться в одном и том же турнире.
Я не уверен, есть ли официальное название для этого типа турнира, буду признателен, если кто-то может дать мне знать это имя тоже.
Требование:
- Победитель получает 3 очка, проигравший получает 0 очков и 1 очко каждому игроку за ничью
- Игрок сыграет против другого игрока, у которого аналогичный счет в каждый раунд
- Турнир заканчивается, когда у Максима (счета) только 1 игрок
То, что я пытался сделать:
1. Исходные данные в дБ, как следует
tournamentId playerId score
1 A 0
1 B 0
......
1 Z 0
back end выберите db by tourId = 1, упорядочите по счету и сделайте некоторые тасования для игроков с одинаковым счетом.
уберите игроков 2 на 2 в качестве графика первого раунда.
, используя пример в 1. У меня будет A против B, C против D и так далее.
Обновите счет после всех проведенных игр и начните с 2 снова, пока у Макса (счет) не будет 1 игрок.
Моя проблема:
Для моей реализации будет возможность, что игрок снова будет играть с тем же игроком.
Например:
раунд 1: A против B
...
раунд 4: если у них обоих одинаковый счет, они могут встретиться снова
Как я могу изменить свой алгоритм, чтобы предотвратить эту проблему?