Алгоритм планирования турниров на основе результатов игроков - PullRequest
1 голос
/ 24 апреля 2020

Я разрабатываю алгоритм планирования турниров, но я столкнулся с проблемой, что 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: если у них обоих одинаковый счет, они могут встретиться снова
Как я могу изменить свой алгоритм, чтобы предотвратить эту проблему?

1 Ответ

3 голосов
/ 24 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...