Маджонг Турнир - рассадка игроков по швейцарской системе

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

Рассадка игроков на первый тур может проходить как случайным образом (с помощью начальной жеребьёвки), так и каким-нибудь предопределённым образом (например по игровому рейтингу).

При запуске программа запрашивает начальные параметры турнира - число игроков (должно быть кратно четырём, начиная от 12), число туров (от 2 до 20). Флаг тестового режима позволяет провести "виртуальные турниры" для тестирования и ознакомления с программой.

Основное окно программы.

main screen

В первой колонке перечислены все имена участвующих в турнире игроков. Их можно вводить прямо в программу или импортировать список из файла формата CSV. В следующей колонке указан номер игрока, определяющий его место за столом в первом туре (может определяться жеребьёвкой). За первый стол садятся игроки с номерами 1-4, за второй 5-8 и т.д. Можно заполнить номера по порядку, нажав кнопку в заголовке столбца.

При правильном заполнении всех порядковых номеров можно осуществить рассадку игроков на первый тур, нажав кнопку "Рассадить игроков".

Следующие колонки сгруппированы по турам и представляют информацию о рассадке игроков в соответствующем туре, и о результатах розыгрыша (для каждого игрока вводятся полученные им турнирные (ТО) и игровые (ИО) очки). После заполнения результатов тура можно осуществить рассадку игроков на следующий тур по "швейцарке" нажав кнопку "Рассадить игроков" снизу.

В любой момент можно сохранить состояние турнира в файл формата CSV для последующего отображения текущих результатов на экране. При чтении CSV файла происходит восстановление состояния турнира до сохранённого.

Диалог настройки даёт возможность задать следующие параметры, влияющие на работу программы:

settings dialog

  • Таймаут в минутах. Значение таймаута, по истечении которого происходит выход из процедуры расчёта.
  • Столов с пересечениями. Количество столов "снизу", на которых возможны пересечения игроков, т.е. рассадка за один стол игроков уже игравших ранее друг с другом. Используется при невозможности осуществить рассадку полностью непересекающимся способом.
  • Столов с фикс. рассадкой. При нахождении рассадки методом случайного поиска имеется возможность задать количество столов "сверху", для которых будет осуществлена наилучшая рассадка, при этом данная рассадка фиксируется и все вариации происходят на столах, ниже указанного.

Формат CSV-файла.

Файл формата CSV, используемый для импорта и экспорта данных представляет собой текстовый файл, в котором данные полей разделены символом точки с запятой ";". Он подходит для открытия в программах электронных таблиц типа Microsoft Excel.

Поля таблицы:

  • МЕСТО. Текущее место игрока в турнире. При записи турнира с уже отыгранными этапами будет автоматически рассчитано место игрока по результатам набранных ТО и ИО. Если результатов нет, для всех игроков будут проставлены нули.
  • НОМЕР. Номер игрока по начальной жеребьёвке. Данный номер используется для рассадки на первый тур.
  • ИМЯ. Имя игрока.
  • СТОЛ1. Номер стола для игрока в первом туре. Для первого тура игроки с номерами 1-4 рассаживаются за первый стол, номера 5-8 за второй стол и т.д.
  • ТО1. Турнирные очки по первому туру. По правилам маджонга здесь могут быть значения 0,1,2 или 4 очка (редко 0.5 или 1.5 при разделении мест).
  • ИО1. Игровые очки по первому туру. При равенстве ТО игровые очки используются в качестве вторичного рейтинга для алгоритма рассадки.
  • СТОЛ*. Номер стола для игрока в следующих турах, начиная со второго.
  • ТО*, ИО*. Турнирные и игровые очки для следующих туров.
  • ТО_ИТОГ, ИО_ИТОГ. Суммарные турнирные и игровые очки за весь турнир. Используются для расчёта места игрока.

При наличии результатов розыгрыша сохранённый файл будет отсортирован по текущим местам игроков в турнире. Если результатов нет - по игровым номерам, если номера не введены - сортировка отсутствует. Нулевые или отсутствующие значения считаются незаполненными.

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

Скачать Маджонг Турнир, версия 1.4

Выпущена специальная версия для турниров по Риичи

Скачать Риичи Турнир, версия 1.5