Модуль:Data/Tournaments
Собираем базу данных турниров. Вот что уже есть:
- Готово:
(править)
2006 (ЧТМ) • 2009 (КАм, КАф, КЕв, КОк, КЕвропы, КЮжАм, ККо) • 2010 (ЧТМ) • 2013 (КАм, КАф, КЕв, КОк, КЕвропы, КЮжАм, ККо) • 2014 (ЧТМ) • 2015 (КФе) • 2017 (КАм, КАф, КЕв, КОк, КЕвропы, ККо) • 2018 (ЧТМ) • 2019 (КФе) • 2020 (КАм, КАф, КЕв, КОк) • 2021 (ККо) • 2022 (ЧТМ) • 2023 (КФе) • 2024 (КАм, КАф, КЕв, КОк) • 2025 (ККо) • 2026 (ЧТМ) • 2027 (КФе) • 2028 (КАм, КАф, КЕв, КОк) • 2029 (ККо) • 2030 (ЧТМ) • 2031 (КФе) • 2032 (КАм, КАф, КЕв, КОк) • 2033 (ККо) • 2034 (ЧТМ) • 2035 (КФе) • 2036 (КАм, КАф, КЕв, КОк) • 2037 (ККо) • 2038 (ЧТМ) • 2039 (ЛНа) • 2041 (КФе) • 2040 (КАм, КАф, КЕв, КОк, ЧЧМ) • 2042 (ЧТМ, пер. матчи) • 2043 (ЛНа) • 2044 (КАм, КАф, КЕв, КОк, ЧЧМ) • 2045 (КФе) • 2046 (ЧТМ) • 2047 (ЛНа) • 2048 (КАм, КАф, КЕв, КОк, ЧЧМ)
- Не готово:
Кубки Убогих после 2006
- Скрипты для быстрого превращения Вики-кода в Lua
- ЧТМ:Центр управления модулями/скрипт сбора статистики турниров — работает нестабильно, много ошибок.
- Второй скрипт — менее функциональный, приходится много заполнять вручную, но более стабильный.
- Третий скрипт — для старых страниц, превращает полные названия в трёхбуквенные коды.
Заготовки для копирования
Скрипты для быстрого превращения Вики-кода в Lua
- ЧТМ:Центр управления модулями/скрипт сбора статистики турниров — работает нестабильно, много ошибок.
- Второй скрипт — менее функциональный, приходится много заполнять вручную, но более стабильный.
- Третий скрипт — для старых страниц, превращает полные названия в трёхбуквенные коды.
Пожалуйста, добавляйте категории на страницу документации.
-- Пишем на примере квалификации ЧТМ-2046
return {
-- ==========================================
-- ПЕРВЫЙ РАУНД (Группы) - раунд может быть и не указан, тогда просто GroupA
-- ==========================================
["1R_GroupA"] = {
type = "group",
-- Python-скрипт берёт из твоего шаблона команды и их цвета
-- Порядок в этом массиве — это то, как они отсортируются в итоговой таблице
standings = {
{"ЛЕС", "Y"}, -- Y = жёлтый (победитель)
{"ФИЛ", "LY"}, -- LY = светло-жёлтый (дополнительные матчи)
{"СЭС", "LY"},
{"СЕУ", "R"} -- R = красный (вылет)
},
-- Python превращает твою "шахматку" в плоский список из 12 матчей (каждый с каждым по 2 раза)
matches = {
-- { Команда1, Команда2, Голы1, Голы2 }
{"ЛЕС", "ФИЛ", 3, 2, 1},
{"ЛЕС", "СЭС", 4, 1, 1},
{"ЛЕС", "СЕУ", 5, 0, 1},
{"ФИЛ", "ЛЕС", 3, 3, 1},
{"ФИЛ", "СЭС", 2, 0, 1},
{"ФИЛ", "СЕУ", 4, 0, 1},
{"СЭС", "ЛЕС", 2, 2, 1},
{"СЭС", "ФИЛ", 0, 0, 1},
{"СЭС", "СЕУ", 5, 2, 1},
{"СЕУ", "ЛЕС", 0, 0, 1},
{"СЕУ", "ФИЛ", 0, 2, 1},
{"СЕУ", "СЭС", 1, 3, 1},
}
},
-- (Здесь идут ["1R_GroupB"], ["1R_GroupC"] и т.д.)
-- ==========================================
-- ДОПОЛНИТЕЛЬНЫЕ МАТЧИ
-- ==========================================
["1R_AddMatches_Stage1"] = { -- номер раунда, указание на то, что это дополнительные, а не стыковые матчи, номер тура
type = "knockout",
matches = {
-- Список матчей (формат см. ниже, в третьем раунде)
}
},
["1R_AddMatches_Stage2"] = {
type = "knockout",
matches = {
-- Список матчей (формат см. ниже, в третьем раунде)
}
},
["1R_AddMatches_Stage3"] = {
type = "knockout",
matches = {
-- Формат: { К1, К2, Г1, Г2, "Спец", Пен1, Пен2, Цвет1, Цвет2, Поле }
-- "Спец" может быть nil, "aet" или "pen"
{"НОР", "РЕЮ", 5, 1, nil, nil, nil, "Y", "R", 1},
{"ФИЛ", "ШПИ", 4, 4, "pen", 8, 7, "Y", "R", 1},
{"СИН", "ОКУ", 5, 6, "aet", nil, nil, "R", "Y", 1},
{"ГОН", "ЭКВ", 1, 1, "pen", 3, 4, "R", "Y", 1},
{"СКН", "АНГ", 4, 0, nil, nil, nil, "Y", "R", 1},
{"ОВО", "ТУВ", 1, 0, nil, nil, nil, "Y", "R", 1},
{"МРН", "ФРА", 0, 1, nil, nil, nil, "R", "Y", 1},
}
},
-- ==========================================
-- ВТОРОЙ РАУНД (Группы)
-- ==========================================
["2R_GroupA"] = { -- всё в том же формате
type = "group",
standings = {
},
matches = {
}
},
-- (Здесь идут ["2R_GroupB"], ["2R_GroupC"] и т.д.)
-- ==========================================
-- ДОПОЛНИТЕЛЬНЫЕ МАТЧИ И ПЛЕЙ-ОФФ
-- ==========================================
["2R_AddMatches_Stage1"] = { -- номер раунда, указание на то, что это дополнительные, а не стыковые матчи, номер тура
type = "knockout",
matches = {
-- Список матчей
}
},
["2R_AddMatches_Stage2"] = {
type = "knockout",
matches = {
-- Список матчей
}
},
-- ==========================================
-- ТРЕТИЙ РАУНД (Группы)
-- ==========================================
["2R_GroupA"] = { -- всё в том же формате
type = "group",
standings = {
{"КИР", "Y"}, -- G = зелёный (выход в финальный турнир)
{"СЕЙ", "Y"}, -- Y = жёлтый (стыки)
{"БРУ", "LY"}, -- R = красный (вылет)
{"БЕР", "R"}
},
matches = {
}
},
-- (Здесь идут ["3R_GroupB"], ["3R_GroupC"] и т.д.)
-- ==========================================
-- СТЫКОВЫЕ МАТЧИ
-- ==========================================
["Playoffs"] = { -- именно что стыковые матчи, которые дают право на выход в финальный турнир
type = "knockout",
matches = {
{"КАЙ", "МНТ", 0, 1, nil, nil, nil, "L", "G", 0}, -- нейтральное поле
{"ТАД", "САМ", 3, 1, nil, nil, nil, "G", "L", 0},
{"АСА", "ТАИ", 0, 0, "pen", 4, 3, "G", "L", 0},
-- и т.д.
}
},
-- ==========================================
-- ДОПОЛНИТЕЛЬНЫЙ ТУРНИР
-- ==========================================
["AddTournament_Semifinal"] = { --дополнительный турнир, может быть также Quaterfinal и qual
type = "knockout",
matches = {
{"ГИБ", "ДРЕ", 2, 0, nil, nil, nil, "Y", "R", 0},
-- и т.д.
}
},
["AddTournament_Final"] = {
type = "knockout",
matches = {
{"ГИБ", "ТАИ", 2, 0, nil, nil, nil, "G", "R", 0},
{"САМ", "ГАВ", 1, 2, nil, nil, nil, "R", "G", 0},
-- и т.д.
}
},
-- ==========================================
-- ДДРУГИЕ ФОРМАТЫ
-- ==========================================
-- ==========================================
-- На других турнирах были также квалификационные матчи,
-- обычно называются "Предварительный раунд"
-- ==========================================
-- вот вики-код:
-- ; Предварительный раунд
-- {{И2
-- |R|РЕЮ|0:1, 1:2|СОМ|Y -- два матча, а не один!!!
-- |R|ЗАС|1:1, 1:1 (пен.2:3)|ОСТ|Y
-- }}
["Qual"] = { --дополнительный турнир, может быть также Quaterfinal и qual
type = "knockout",
matches = {
{"РЕЮ", "СОМ", 0, 1, nil, nil, nil, "R", "G"},
{"СОМ", "РЕЮ", 2, 1, nil, nil, nil, "G", "R"},
-- и т. д.
}
},
-- ==========================================
-- Иногда играли в один круг на нейтральном поле
-- ==========================================
-- ; Группа D
-- {{Группа 4-А1| - A1 - указатель круга
-- G|ЭРИ|3:1|2:0|4:2|
-- Y|ЧАД|1:3|1:3|6:2|
-- R|ЦАР|0:2|3:1|2:4|
-- R|ЛЕС|2:4|2:6|4:2}}
["GroupD"] = { -- нет указания раунда, он был единственным
type = "group",
-- Python-скрипт берёт из твоего шаблона команды и их цвета
-- Порядок в этом массиве — это то, как они отсортируются в итоговой таблице
standings = {
{"ЭРИ", "G"},
{"ЧАД", "Y"},
{"ЦАР", "R"},
{"ЛЕС", "R"}
},
-- каждый с каждым по 1 разу)
matches = {
-- { Команда1, Команда2, Голы1, Голы2 }
{"ЭРИ", "ЧАД", 3, 1, 0},
{"ЭРИ", "ЦАР", 2, 0, 0},
{"ЭРИ", "ЛЕС", 4, 2, 0},
{"ЧАД", "ЦАР", 1, 3, 0},
{"ЧАД", "ЛЕС", 6, 2, 0},
{"ЦАР", "ЛЕС", 2, 4, 0},
}
},
-- Могут быть и огромные группы
-- ; Группа A
-- Организатор — [[Сан-Томе и Принсипи]].
-- {{Группа 8-А1|
-- G|СТП|2:2|3:2|5:2|4:0|4:0|7:0|3:1|
-- Y|БГН|2:2|0:0|4:0|5:0|4:2|2:1|9:1|
-- L|МАЙ|2:3|0:0|2:2|5:0|4:0|4:1|5:4|
-- L|КАТ|2:5|0:4|2:2|3:2|1:0|6:0|3:1|
-- R|МАТ|0:4|0:5|0:5|2:3|1:2|1:0|3:2|
-- R|РЕХ|0:4|2:4|0:4|0:1|2:1|2:4|2:2|
-- R|МАС|0:7|1:2|1:4|0:6|0:1|4:2|0:0|
-- R|БРВ|1:3|1:9|4:5|1:3|2:3|2:2|0:0}}
["GroupA"] = { -- нет указания раунда, он был единственным
type = "group",
standings = {
{"СТП", "G"},
{"БГН", "Y"},
{"МАЙ", "L"},
{"КАТ", "L"},
{"МАТ", "R"},
{"РЕХ", "R"},
{"МАС", "R"},
{"БРВ", "R"}
},
-- опять же, каждый с каждым по 1 разу)
matches = {
}
},
}