Lykkehjul
Skriv dine muligheder, snur hjulet
Hver linje i boksen bliver en skive. Tryk snur, hjulet drejer og bremser op, og skiven under pilen vinder.
Intet uploades. Dine poster lever i browserfanen og forsvinder, når du lukker den.
Vinderen er valgt, før hjulet bevæger sig
Det betyder mere, end det lyder til.
Den oplagte måde at bygge et hjul på er at give det et tilfældigt skub, lade friktion bremse det ned, og aflæse, hvad der ender under pilen. Den fremgangsmåde gør resultatet afhængigt af afrunding af den endelige vinkel og af, hvor mange animationsbilleder din enhed nåede at tegne — en langsom telefon og en hurtig computer ville ikke være lige retfærdige.
Dette hjul gør det modsatte. Det trækker en vinder fra crypto.getRandomValues()
først, beregner derefter den præcise rotation, der placerer den skive under pilen,
og animerer hen til den. Snurren er præsentation; trækningen er allerede afgjort
og påviseligt ensartet.
Hver skive har derfor præcis samme chance, uanset hvor mange skiver der er, hvor lange deres etiketter er, eller hvilken enhed du bruger.
Fjern vinderen, eller bliv ved med at snurre det fulde hjul
Med fjern vinder slået til fjerner hvert snur den vindende post fra hjulet. Snur igen og igen, og du får en rækkefølge: først, anden, tredje. Godt til at trække flere gevinster, eller til at afgøre præsentationsrækkefølgen foran et lokale.
Med den slået fra forbliver hjulet helt, og den samme mulighed kan vinde to gange — hvilket er, hvad du vil have til “hvor skal vi spise i aften”.
Vægt hjulet ved at gentage en post
Hjulet giver hver skive samme chance, så måden at favorisere en mulighed på er at give den flere skiver. At liste den to gange fordobler dens andel.
| Poster | Skiver | Chance for Pizza |
|---|---|---|
| Pizza, Sushi, Tacos | 3 | 33% |
| Pizza, Pizza, Sushi, Tacos | 4 | 50% |
| Pizza ×3, Sushi, Tacos | 5 | 60% |
Duplikerede etiketter fremstår mere end én gang på hjulet, hvilket er ærligt — enhver, der ser på, kan tælle skiverne og se vægtningen i stedet for at tage dit ord for det. Den synlighed er hele pointen med et hjul; en skjult vægt ville underminere det.
Til finkornede vægte, der ikke passer pænt ind i skiver, accepterer
tilfældighedsgeneratoren eksplicitte tal:vægt-par i stedet.
Hvor mange skiver forbliver læsbare
Skiver krymper, efterhånden som poster øges, og etiketter tegnes langs radius, så der er et praktisk loft langt under ethvert teknisk et.
- Op til 12 — behageligt, etiketter læses ved et blik
- 12 til 20 — læsbart, men lange navne begynder at trænges
- 20 til 30 — kun brugbart til korte etiketter
- Over 30 — hjulet virker stadig, og trækningen er stadig fair, men ingen kan læse det, mens det snurrer
Etiketter længere end 18 tegn beskæres med en ellipse, så de forbliver inden for deres skive. Hvis din liste er lang nok til, at hjulet er ulæseligt, gør navnevælgeren det samme job uden teatret.
Tilgængelighed og bevægelse
Hjulet respekterer prefers-reduced-motion. Hvis dit system beder om reduceret
bevægelse, springes snurreanimationen over, og vinderen vises med det samme.
Resultatet er identisk begge veje, fordi trækningen aldrig afhang af animationen.
Vinderen bliver også annonceret i en live-region, så skærmlæsere læser den op, uden at brugeren skal lede efter den.
Hvor et vælgerhjul bliver brugt
- Beslutninger — frokost, film, hvilket gøremål
- Livestreams og klasseværelser — snurren er selve pointen; folk ser på
- Giveaways — en synlig trækning føles mere fair for et publikum end et tal, der dukker op
- Isbrydere — hvem svarer på det næste spørgsmål