Ahoj Stefano,
vracím se k tématu, o kterém jsme krátce mluvili, protože při pokračování testů programu jsem si uvědomil, že je třeba téma trochu prohloubit, zejména nyní, když jsi implementoval úžasnou funkci pro masivní aktualizaci Elo přihlášených uživatelů na základě FIDE seznamů (Standard, Rapid a Blitz). Mimochodem, skvělá práce, je to velmi pohodlná funkce!
U individuálních turnajů je fakt, že hráč bez hodnocení se zaregistruje s Elo „0“ nebo „1399“, téměř irelevantní pro praktické účely tabulky, ale v týmových turnajích může tato situace způsobit zmatení.
Uděluji si numerický příklad, abych to lépe vysvětlil. Pokud v týmu máme hráče s 2000 Elo a nehodnoceného (NC), je správnější považovat průměrné Elo týmu za 1000 nebo 1700?
Rozumíš, že rozdíl je obrovský. Pokud organizátor musí přijímat týmy nebo vypočítávat kategorie na základě vyváženého průměru, tým s průměrem 1000 (který ve skutečnosti obsahuje 2000 a nováčka) zcela zkreslí hodnoty v poli a naruší kritéria vyrovnání. Nehodnocený hráč pravděpodobně bude hrát silou odhadnutou mezi 1000 a 1300 body, ne nulovou. Další praktický případ: ve našem turnaji máme hráče s Elo Blitz, ale bez Rapid. Pokud změníme turnaj z Blitz na Rapid, funkce pro přizpůsobení Elo mu ponechá Elo Blitz; existují tři možnosti: ponechat Elo Blitz, nastavit 0 nebo nastavit 1399. Každá z těchto možností má své výhody a nevýhody, ale já upřednostňuji 1399.
Máš naprosto pravdu, když říkáš, že globální standard FIDE pro nehodnocené je „nula“ (nebo spíše absence hodnocení) a že pod 1400 se jednoduše přepne na unrated v mezinárodním seznamu. Nicméně u turnajů, které se hrají pod ochranou FSI, je 1399 zlatým pravidlem pro nehodnocené. Navíc, pokud necháme pole Elo volné při online registraci, existuje reálné riziko nekonzistentních údajů (někteří se registrovají s 0, jiní s 1399 podle toho, co jim přijde na mysl).
Vzhledem k tomu, že nová funkce aktualizace z FIDE seznamů „čte“ a opravuje hodnocení podle typu (Standard/Rapid/Blitz), myslíš si, že by bylo možné integrovat zvláštní správu pro tyto případy?
Poskytuji pár nápadů, jak by se to mohlo strukturovat na úrovni logiky programu, přičemž zachováme mezinárodní charakter softwaru, ale zároveň zachováme místní specifika:
- Fiktivní výpočetní hodnota (Default Rating pro Unrated): Umožnit programu uchovat v databázi příznak „Unrated“ (nebo zachovat oficiální FIDE 0), ale přidat možnost v nastavení turnaje typu: Přiřadit fiktivní Elo nehodnoceným pro výpočet průměrů. Pokud organizátor nastaví 1399, program použije tuto hodnotu k výpočtu průměru týmu nebo ke třídění, aniž by znečistil skutečné údaje hráče.
- V průběhu aktualizace seznamů: Když funkce dotazuje FIDE seznam a nenajde hráče (nebo ho najde s chybějícím/0 hodnocením), může jednat podle konfiguračního parametru turnaje (např. Pokud není v FIDE seznamu → Nastav Elo na X nebo Zachovej Unrated).
Co si o tom myslíš? Rád bych věděl, jestli i podle tebe téma stojí za hlubší prozkoumání, nebo máš jiný přístup k řešení problému zkreslených průměrů v týmových turnajích (který by však mohl být rozšířen na individuální).
Děkuji a ahoj,
Claudio



