Skip to content

Pravidla pořadí (jeden event)

Závazná pravidla pro výpočet pořadí týmů v rámci jednoho eventu. Platí pro samostatné kvízy. Pro extraligy a dlouhodobá tabulková řazení napříč více eventy se používá samostatný výpočet (viz LeagueStatisticCalculator) — pravidla níže se na něj nevztahují.

  1. Skóre (DESC). Více bodů → lepší pořadí.
  2. Handicap počtu hráčů (ASC). Při shodě skóre má lepší pořadí tým s menším počtem hráčů.

Týmy jsou považovány za opravdovou shodu pouze tehdy, když mají:

  • shodný počet bodů, a zároveň
  • shodný počet hráčů.

Pokud handicap počtu hráčů shodu rozhodne, už se nezvýrazňuje jako shoda.

V kroku Potvrzení se týmy v nerozhodnuté shodě zvýrazní žlutě a moderátor je musí ručně přetáhnout do požadovaného pořadí.

Pořadí se přepočítá pokaždé, když moderátor přejde do kroku Potvrzení, ať tlačítkem Pokračovat na potvrzení, nebo kliknutím na krok v ukazateli nahoře. Když se po seřazení změní body nebo počet hráčů a pořadí jim přestane odpovídat, potvrzení výsledků se zablokuje s výzvou vrátit se k zadání výsledků a pokračovat znovu.

Kanonická implementace pravidel:

  • Výpočet pořadí: App\Modules\Result::sortByPoints(int $eventId, int $week)
    RANK() OVER (ORDER BY points DESC, players ASC)
  • Detekce shody (po aplikaci handicapu): App\Modules\Result::tiedIdsForEvent(int $eventId, int $week)
    • grupuje řádky podle dvojice (points, players) a vrací IDs skupin s count > 1.
  • Kontrola uloženého pořadí před potvrzením: App\Modules\Result::standingContradictsRules(int $eventId, int $week)
    • vrací true, když je tým uložený pod týmem, který podle pravidel poráží.
Tým Body Hráči Pořadí
A 42 4 1
B 42 6 2
C 40 5 3
D 40 5 3 (shoda)
E 40 5 3 (shoda)
  • A a B mají shodné skóre 42, handicap rozhoduje (A má méně hráčů) → A je první, B druhý, bez zvýraznění.
  • C, D, E mají shodné skóre 40 i shodný počet hráčů 5 → opravdová shoda, žluté zvýraznění, moderátor musí rozhodnout pořadí přetažením.