Preskočiť na hlavný obsah

Hod mincou a točenie kolesa zadarmo

Otočte virtuálnu mincu, otočte prispôsobiteľné koleso alebo náhodne si vyberte zo zoznamu možností. Používa kryptograficky bezpečnú náhodnosť vášho prehliadača — nie je to overiteľný verejný žreb, takže sa vyhnite regulovaným súťažiam.

Po načítaní funguje offline

🔒 Všetci traja používajú kryptograficky bezpečný generátor náhodných čísiel vášho prehliadača: výsledok sa najskôr vyberie, potom sa animuje — minca je skutočný 50/50, koleso sa otáča na už vybratý výsledok a výber je nestranný. Z vášho zariadenia neuniká nič. Toto je spravodlivé na bežné použitie, ale nie je to overiteľný verejný žreb, takže sa vyhnite regulovaným súťažiam alebo rozhodnutiam s vysokou hodnotou.

Bežné použitia

  • Valiť mincu, aby ste sa rozhodliPoužite spravodlivú virtuálnu hodinu mincu na rýchle, nestranné rozhodnutia, keď ste uviaznutí medzi dvoma možnosťami.
  • Otočte koleso na náhodné priradenie tímuPoužite prispôsobiteľné koleso na náhodné priradenie členov tímu ku úlohám, úlohám alebo skupinám.
  • Náhodný výber študentov pre učebnePoužite koleso alebo výber možnosti na náhodný pozov študentov, priradenie skupín alebo výber dobrovoľníkov.
  • Virtuálna hodina mincu pre športValiť spravodlivú mincu na určenie strán tímu, prvé vlastníctvo, poradie podania alebo ďalšie sportové rozhodnutia.
  • Náhodný výber pre darovanieVyberte náhodného víťaza zo zoznamu záznamov pomocou výberu možnosti — transparentný a spravodlivý.

Ako to funguje

Všetky tri režimy — hod mincou, koleso šťastia a výber možnosti — používajú vstavané Web Crypto API prehliadača (crypto.getRandomValues) na vygenerovanie víťazného výsledku a potom celú animáciu riadia výhradne na strane klienta pomocou CSS transformácií a requestAnimationFrame. Server nie je zapojený v žiadnom kroku.

  1. 1
    Web Crypto vyberá víťaza
    Pred spustením akejkoľvek animácie crypto.getRandomValues naplní Uint32Array kryptograficky náhodným 32-bitovým celým číslom. Operácia modulo ho namapuje na počet možností (2 pre panna/orol, N pre koleso alebo výber), takže každý výsledok má presne rovnakú pravdepodobnosť.
  2. 2
    Uhol otočenia sa vypočíta tak, aby pristál na výsledku
    Pre mincu kód vypočíta najkratšie dodatočné otočenie (nad rámec aktuálneho kumulovaného uhla), ktoré skončí so správnou stranou hore — orol pri 0°, panna pri 180° — a potom pridá 5 plných otočení, aby to vyzeralo ako skutočné hádzanie. Koleso robí to isté: nájde uhlový posun, ktorý privedie víťazný výsek pod ukazovateľ, pridá 6 plných otočení a aplikuje malú náhodnú odchýlku, aby ukazovateľ vždy nezastal presne v strede výseku.
  3. 3
    CSS prechody a requestAnimationFrame riadia animáciu
    Minca a koleso sa animujú pomocou CSS transform s krivkou zjemnenia cubic-bezier aplikovanou na jedinú kumulovanú hodnotu otočenia — po nastavení uhla nie je potrebný žiadny JavaScript pre každú snímku. Výber možnosti namiesto toho používa requestAnimationFrame: pri každej snímke kvadraticky rastúci interval určuje, či posunúť zvýraznenie, čím vzniká spomalenie v štýle výherného automatu, ktoré vždy zastaví na vopred určenom víťazovi.
  4. 4
    Výsledok sa odhalí a zaznamená do histórie relácie
    setTimeout sa spustí po dokončení animácie (1,3 s pre mincu, 4,3 s pre koleso) a zapíše výsledok do stavu. Režim mince udržiava bežiacu históriu relácie až 24 hodov s počtami panna/orol. Používatelia so zapnutým prefers-reduced-motion animáciu úplne preskočia a výsledok uvidia okamžite.

Súvisiace nástroje

Často kladené otázky