Kolo štěstí
Napište možnosti, roztočte kolo
Každý řádek v poli se stane výsečí. Stiskněte roztočit, kolo se otáčí a zpomaluje a vyhrává výseč pod ukazatelem.
Nic se nikam nenahrává. Vaše položky žijí jen v kartě prohlížeče a zmizí, jakmile ji zavřete.
Výherce se vybere dřív, než se kolo pohne
Tohle je důležitější, než to zní.
Zjevný způsob, jak kolo postavit, je dát mu náhodný impuls, nechat tření, aby ho zpomalilo, a přečíst, co skončí pod ukazatelem. Takový přístup dělá výsledek závislým na zaokrouhlení konečného úhlu a na tom, kolik animačních snímků váš přístroj stihl vykreslit — pomalý telefon a rychlý stolní počítač by nebyly stejně férové.
Toto kolo dělá pravý opak. Nejdřív vylosuje výherce pomocí
crypto.getRandomValues(), pak spočítá přesnou rotaci, která tuto výseč
dostane pod ukazatel, a k ní animuje. Točení je jen prezentace; losování je
už rozhodnuté a prokazatelně rovnoměrné.
Každá výseč má proto přesně stejnou šanci, bez ohledu na to, kolik výsečí je, jak dlouhé jsou jejich popisky nebo na jakém zařízení jste.
Odebrat výherce, nebo dál točit celým kolem
Se zapnutou volbou odebrat výherce každé roztočení sundá vítěznou položku z kola. Točte opakovaně a dostanete pořadí: první, druhý, třetí. Hodí se pro losování více cen nebo pro rozhodnutí o pořadí prezentací před místností.
S vypnutou volbou zůstává kolo celé a stejná možnost může vyhrát dvakrát — což je přesně to, co chcete u „kam dnes večer na jídlo“.
Vážení kola opakováním položky
Kolo dává každé výseči stejnou šanci, takže způsob, jak možnost zvýhodnit, je dát jí víc výsečí. Uvedení dvakrát zdvojnásobí její podíl.
| Položky | Výseče | Šance pro Pizzu |
|---|---|---|
| Pizza, Sushi, Tacos | 3 | 33 % |
| Pizza, Pizza, Sushi, Tacos | 4 | 50 % |
| Pizza ×3, Sushi, Tacos | 5 | 60 % |
Zdvojené popisky se na kole objeví víckrát, což je poctivé — kdokoli přihlížející může výseče spočítat a vidět vážení, místo aby vám musel věřit na slovo. Právě tahle viditelnost je smysl kola; skryté vážení by ho popřelo.
Pro jemnější váhy, které se do výsečí úhledně nevejdou, generátor náhodných
čísel místo toho přijímá explicitní dvojice číslo:váha.
Kolik výsečí zůstává čitelných
S přibývajícími položkami se výseče zmenšují a popisky se kreslí podél poloměru, takže existuje praktický strop hluboko pod jakýmkoli technickým limitem.
- Do 12 — pohodlné, popisky se čtou na první pohled
- 12 až 20 — čitelné, ale dlouhá jména se začínají tísnit
- 20 až 30 — použitelné jen pro krátké popisky
- Nad 30 — kolo stále funguje a losování je stále férové, ale nikdo ho za jízdy nepřečte
Popisky delší než 18 znaků se zkracují výpustkou, aby zůstaly uvnitř své výseče. Pokud je váš seznam tak dlouhý, že je kolo nečitelné, stejnou práci bez divadla odvede výběr jména.
Přístupnost a pohyb
Kolo respektuje prefers-reduced-motion. Pokud váš systém žádá omezený
pohyb, animace roztočení se přeskočí a výherce se objeví okamžitě. Výsledek
je v obou případech stejný, protože losování na animaci nikdy nezáviselo.
Výherce se také ohlásí v živé oblasti (live region), takže ho čtečky obrazovky přečtou, aniž by ho uživatel musel hledat.
Kde se kolo štěstí používá
- Rozhodování — oběd, film, kdo na řadě s úklidem
- Živé vysílání a třídy — samotné točení je to hlavní, lidé se na něj dívají
- Soutěže — viditelné losování působí na diváky férověji než číslo, které se prostě objeví
- Ledolamky — kdo odpoví na další otázku