Перейти к содержанию

Модуль:Турнирная сетка: различия между версиями

Переписан модуль
Исправлена ошибка с рисованием правой части сетки
Строка 76: Строка 76:
     local finalName = args["Final-name"] or "Финал"
     local finalName = args["Final-name"] or "Финал"
     local thirdName = args["3rd-name"] or "Матч за 3-е место"
     local thirdName = args["3rd-name"] or "Матч за 3-е место"
    local maxMatches = 2^(rounds - 1)
    local halfMatches = maxMatches / 2


     local container = mw.html.create('div'):addClass('bracket-container')
     local container = mw.html.create('div'):addClass('bracket-container')
Строка 97: Строка 94:
         local matchesContainer = mw.html.create('div'):cssText('display: flex; flex-direction: column; justify-content: space-around; flex-grow: 1;')
         local matchesContainer = mw.html.create('div'):cssText('display: flex; flex-direction: column; justify-content: space-around; flex-grow: 1;')
          
          
        -- Количество матчей на одной стороне в данном раунде
         local matchesInRound = 2^(rounds - r - 1)
         local matchesInRound = 2^(rounds - r - 1)
         for m = 1, matchesInRound do
         for m = 1, matchesInRound do
Строка 108: Строка 106:
     -- ЦЕНТР (Финал и игра за 3-е место)
     -- ЦЕНТР (Финал и игра за 3-е место)
     local center = mw.html.create('div'):addClass('bracket-center')
     local center = mw.html.create('div'):addClass('bracket-center')
     center:cssText('display: flex; flex-direction: column; justify-content: space-between; width: 190px; min-width: 170px; margin: 0 10px;')
     center:cssText('display: flex; flex-direction: column; justify-content: center; width: 190px; min-width: 170px; margin: 0 10px;')
      
      
     -- Финал
     -- Финал
Строка 143: Строка 141:
         local matchesInRound = 2^(rounds - r - 1)
         local matchesInRound = 2^(rounds - r - 1)
         for m = 1, matchesInRound do
         for m = 1, matchesInRound do
             local matchNum = halfMatches + m
            -- ИСПРАВЛЕНИЕ: Правая сторона нумеруется подряд после левой
             local matchNum = matchesInRound + m
             matchesContainer:node(buildMatch(args, "RD" .. r, matchNum))
             matchesContainer:node(buildMatch(args, "RD" .. r, matchNum))
         end
         end