Eesti drift meistrivõistlused (Pro2) · 2026
Drifti meistritiitli arvutaja
Reaalajas arvutus, kes viiest tiitlipretendendist superfinaalis meistriks tuleb ja millise tulemusega.
Eesmärk
Enne meistrivõistluste otsustavat superfinaali olid viis sõitjat punktidega väga lähestikku. Ametlik tulemusteenus näitab sõitude tulemusi, aga mitte seda, mida need tähendavad: kes võib veel meistriks tulla, mis tulemusega ja kuidas see teisi mõjutab. Seda pidi saama näha reaalajas, kõigil vaatajatel korraga.
Tulemus numbrites
Mis muutus
25
registreeritud sõitjat superfinaalides
5
tiitlipretendenti enne otsustavat vooru
32
kohaga väljalangemistabel
5 s
järel uuenesid tulemused kvalifikatsiooni ajal
Olukord
Eesti drifti meistrivõistluste punktiseis oli enne superfinaali väga tihe: viis sõitjat võitlesid tiitli eest ja väikseim vahe oli vaid mõni punkt. Ametlik tulemusteenus näitab paarissõitude tulemusi jooksvalt, aga ei ütle, mida iga tulemus meistritiitli jaoks tähendab. Ehitasin selle kõrvale reaalajas arvutuse, mis vastab küsimusele „kes saab praegu veel meistriks ja millise tulemusega?”. Vastust nägid nii sõitjad ise kui ka kõik pealtvaatajad.
Piirangud
- Punktireeglid (kvalifikatsioon, paarissõidud ja otsustamine võrdsete punktide korral) tuli siduda ametliku tulemusteenuse andmetega, mis meistrivõistluse seisu ise ei arvesta.
- Tulemus pidi uuenema kõigi vaatajate ekraanidel korraga, ilma et keegi peaks lehte värskendama.
- Kõik pidi töötama tavalisel veebiserveril, ilma eraldi andmebaasita.
- Ühtegi sõitjat ei saanud arvestada eraldi: iga pretendendi võimalus sõltub sellest, mida teised neli samal ajal teevad.
Lahendus
Kuidas lahendasin
Reeglid
Kuidas muuta meistrivõistluste punktisüsteem (kvalifikatsioon, paarissõidud ja mitmeastmeline võrdsete punktide reegel) arvutuseks, mis päriselt töötab?
Punktitabelid on kirjutatud otse võistluse reeglite järgi. Kui kaks sõitjat lõpetavad võrdsete punktidega, võrreldakse samm-sammult: kõigepealt etapivõite, siis teisi kohti ja nii edasi kuni 32. kohani. Kõige viimasena otsustab hooaja viimase etapi tulemus. Sama loogikat kasutab arvutus ka siis, kui on vaja teada, kas võrdsete punktidega lõpp annaks tiitli.
Andmete sobitamine
Ametlikus tulemusteenuses on sõitjad nimepidi ja nimed on kirjutatud veidi erinevalt (täpitähed, suured ja väikesed tähed, kirjavahemärgid).
Enne võrdlemist ühtlustatakse kõik nimed: täpitähed tehakse tavatähtedeks ja kirjavahemärgid eemaldatakse. Kui sõitjat nimekirjast ei leita, lisatakse ta automaatselt ja tema hooaja senised punktid võetakse samast teenusest. Nii ei alusta keegi nullist, kui tal on tegelikult juba punkte.
Stsenaariumid
Kuidas näidata mitte ainult hetkeseisu, vaid kõiki olukordi, kus iga viiest pretendendist saaks meistriks, arvestades ka seda, mida teised neli teevad?
Iga pretendendi ja iga võimaliku lõpptulemuse kohta arvutab süsteem, kui kaugele võivad teised neli jõuda, et see olukord ikka kehtiks. Sellest tehakse lihtne lause, näiteks „tuleb meistriks 3. kohaga, KUI konkurent A ei jõua kõrgemale kui 2. kohale JA konkurent B langeb varem välja”. Eraldi on näha, mis juhtub, kui superfinaali või poodiumi võidab keegi väljastpoolt viisikut: kes sellest võidab ja kes kaotab.
Reaalajas uuendus
Kümned inimesed vaatavad sama tulemust korraga. Kuidas hoida kõik ekraanid samas seisus ilma serverit ja ametlikku tulemusteenust üle koormamata?
Kõik vaatajad saavad uuendused ühest jagatud allikast reaalajas voona. Ametlikult teenuselt küsitakse andmeid ainult üks kord korraga, ükskõik kui palju inimesi parajasti vaatab. Küsimise sagedus sõltub võistluse käigust: kvalifikatsiooni ajal tihedamalt, paarissõitude vahel harvemini ja pausi ajal kõige harvemini. Korraldaja saab automaatse uuendamise ühe klikiga peatada ja seisu ise kinnitada, nii et ekraanidele jõuab ainult kontrollitud tulemus.
Andmekvaliteet
Väljalangemistabelis võib tühi koht tähendada kahte väga erinevat asja: vastane pole veel selgunud või sellele kohale polegi kedagi.
Tühja kohta loetakse automaatseks edasipääsuks ainult esimeses ringis, kus see tõesti nii saab olla. Hilisemates ringides tähendab tühi koht, et vastase sõit on alles pooleli. Süsteem ei tohi seda kunagi edasipääsuks lugeda, muidu antaks kellelegi võit, mida ta pole veel välja teeninud.
Tulemus
Superfinaalide ajal nägid sõitjad, meeskonnad ja pealtvaatajad reaalajas, milline tulemus iga hetk meistritiitli tagab. Keegi ei pidanud punktitabelit ise peast arvutama. Korraldajal oli kogu aeg kontroll: iga ekraanil olnud seis oli kinnitatud ja õige.
Edasi
Loogiline järgmine samm on kasutada sama arvutust ka teiste klasside ja etappide jaoks, mitte ainult superfinaalides.