Одним из способов было бы просто создать список игроков, ищущих совпадения в любой момент времени, отсортированный по рангу игрока. Когда вы наберете достаточно людей, чтобы начать новый матч (или, возможно, на два меньше, чем требуется), сгруппируйте их следующим образом:
- Уберите лучших и худших игроков и поместите их в команду 1
- Удалите лучшего и худшего на данный момент игрока (действительно второго и худшего на втором месте) и поместите его в команду 2
- Если осталось только два игрока, поместите каждого из них в разные команды, в зависимости от того, у кого наименьший общий счет. В противном случае повторите:
- Удалите сейчас, лучше, а теперь и хуже, и поместите их в команду 1
- Удалите сейчас, лучше, а теперь и хуже, и поместите их в команду 2
и т.д.. и т.д. и т. д., пока ваши команды не будут заполнены.
Если вы решили начать новый матч с меньшим, чем требуется, то здесь пришло время позволить игрокам дождаться присоединения новых людей. Как только присоединится новый человек, вы захотите поставить его в открытую команду с наименьшим количеством набранных очков.
В качестве альтернативы, если вы хотите избежать игр, которые объединяют хороших и плохих игроков в одной команде, вы можете разделить всех на уровни , (группы, основанные на их рейтинге) и сопоставлять людей только в одной группе. ярус. Для этого потребуется новый открытый / отсортированный список для каждого дополнительного уровня.
* ** 1023 тысяча двадцать-дв * Пример
Игра 4v4
A - 1000 точек
B - 800 пунктов
C - 600 pnts
D - 400 pnts
E - 200 баллов
F - 100 пунктов
Как только вы получите эти шесть, сгруппируйте их в команды следующим образом:
Команда 1: A, F, D (общий счет 1500)
Команда 2: B, E, C (общий счет 1600)
Теперь мы ждем присоединения еще двух игроков.
Сначала игрок E приходит с 500 очками. Он идет в Команду 1, потому что у них более низкий комбинированный счет.
Затем игрок F приходит с 800 очками. Он идет в Команду 2, потому что осталась единственная открытая команда.
Всего команд:
Команда 1: A, F, D, E (общий счет 2000)
Команда 2: B, E, C, F (2400)
Обратите внимание, что команды на самом деле были довольно честными, пока не пришли последние два. Честно говоря, лучший вариант лучший состоял бы в том, чтобы создать матч, только когда у вас достаточно игроков, чтобы начать его. Но тогда время ожидания может быть слишком длинным для игрока.
Отрегулируйте, сколько вам нужно, прежде чем формировать матч. Ниже = меньше время ожидания, скорее нечестно. Выше = больше времени ожидания, меньше, возможно, нечестного.
Если у вас есть экран перед игрой, более низкий уровень также предоставит людям больше времени, чтобы поболтать и пообщаться со своими будущими товарищами по команде в ожидании.