Roata Norocului
Scrie-ți opțiunile, învârte roata
Fiecare rând din casetă devine o felie. Apeși învârte, roata se rotește și încetinește, iar felia de sub indicator câștigă.
Nimic nu este încărcat. Intrările tale trăiesc în fila browserului și dispar când o închizi.
Câștigătorul este ales înainte ca roata să se miște
Asta contează mai mult decât pare.
Modul evident de a construi o roată este să-i dai un impuls aleator, să lași frecarea s-o încetinească și să citești ce ajunge sub indicator. Această abordare face ca rezultatul să depindă de rotunjirea unghiului final și de câte cadre de animație a reușit dispozitivul tău să deseneze — un telefon lent și un desktop rapid nu ar fi la fel de corecte.
Această roată face opusul. Extrage un câștigător din
crypto.getRandomValues() mai întâi, apoi calculează rotația exactă care
aduce acea felie sub indicator și animă până la ea. Învârtirea este
prezentare; extragerea este deja decisă și demonstrabil uniformă.
Fiecare felie are deci exact aceeași șansă, indiferent câte felii sunt, cât de lungi le sunt etichetele sau pe ce dispozitiv ești.
Elimină câștigătorul, sau continuă cu roata întreagă
Cu elimină câștigătorul activat, fiecare învârtire scoate intrarea câștigătoare de pe roată. Învârte în mod repetat și obții o ordine: primul, al doilea, al treilea. Bun pentru extragerea mai multor premii, sau pentru stabilirea ordinii de prezentare în fața unei săli.
Cu opțiunea dezactivată, roata rămâne întreagă și aceeași opțiune poate câștiga de două ori — ceea ce vrei pentru „unde mâncăm diseară”.
Ponderarea roții prin repetarea unei intrări
Roata dă fiecărei felii aceeași șansă, deci modul de a favoriza o opțiune este să-i dai mai multe felii. Listând-o de două ori îi dublezi cota.
| Intrări | Felii | Șansa pentru Pizza |
|---|---|---|
| Pizza, Sushi, Tacos | 3 | 33% |
| Pizza, Pizza, Sushi, Tacos | 4 | 50% |
| Pizza ×3, Sushi, Tacos | 5 | 60% |
Etichetele duplicate apar pe roată de mai multe ori, ceea ce este onest — oricine privește poate număra feliile și vede ponderarea, în loc să te creadă pe cuvânt. Această vizibilitate este scopul unei roți; o pondere ascunsă i-ar anula rostul.
Pentru ponderi fine care nu se potrivesc bine în felii, generatorul de
numere aleatoare acceptă în schimb perechi explicite numar:pondere.
Câte felii rămân lizibile
Feliile se micșorează pe măsură ce cresc intrările, iar etichetele sunt desenate de-a lungul razei, deci există un plafon practic mult sub oricare limită tehnică.
- Până la 12 — confortabil, etichetele se citesc dintr-o privire
- 12 până la 20 — lizibil, dar numele lungi încep să se aglomereze
- 20 până la 30 — util doar pentru etichete scurte
- Peste 30 — roata funcționează în continuare și extragerea rămâne corectă, dar nimeni n-o poate citi cât se învârte
Etichetele mai lungi de 18 caractere sunt trunchiate cu puncte de suspensie ca să rămână în felia lor. Dacă lista ta este suficient de lungă încât roata devine ilizibilă, selectorul de nume face aceeași treabă fără teatru.
Accesibilitate și mișcare
Roata respectă prefers-reduced-motion. Dacă sistemul tău cere mișcare
redusă, animația de învârtire este omisă și câștigătorul apare imediat.
Rezultatul este identic în ambele cazuri, pentru că extragerea nu a depins
niciodată de animație.
Câștigătorul este de asemenea anunțat într-o regiune live, deci cititoarele de ecran îl citesc cu voce tare fără ca utilizatorul să trebuiască să-l caute.
Unde se folosește o roată selectoare
- Decizii — masa de prânz, un film, ce sarcină
- Live-uri și clase — învârtirea este scopul; lumea o urmărește
- Tombole — o extragere vizibilă pare mai corectă unui public decât un număr care apare pur și simplu
- Sparte gheața — cine răspunde la următoarea întrebare