Liigu põhisisu juurde

Mündi viskamine ja pööramine tasuta

Visake virtuaalse mündi, pöörake kohandatavat ratast või valige juhuslikkult valikute loendist. Kasutab teie brauseri krüptograafiliselt turvalisu juhuslikust — pole kontrollitav avalik loosimine, nii et vältida reguleeritud võistlusi.

Töötab võrguühenduseta pärast laadimist

🔒 Kõik kolm kasutavad teie brauseri krüptograafiliselt turvalisu juhuslike arvude generaatorit: tulem valitakse esmalt, seejärel animeeritakse — münt on tõeline 50/50, ratas pöörleb juba valitud tulemuse suunas ja valija on erapooletu. Teie seadmest ei lahku midagi. See on õiglane igapäevaseks kasutamiseks, kuid see ei ole kontrollitav avalik loosimine, nii et vältida reguleeritud võistlusi või suurte otsuste vastu.

Levinud kasutusviisid

  • Pöörake münti otsuste jaoksKasutage õiglast virtuaalset mündi pöörde kiireteks, erapooletuteks otsusteks, kui olete kahe variandi vahel põhjustada.
  • Pöörake ratta juhuslikele meeskonna ülesanneteleKasutage kohandatavat ratast meeskonna liikmete juhuslikult ülesannetele, rollidele või rühmadele määramiseks.
  • Juhuslik õpilaste valija klassideleKasutage ratta või valiku valija õpilaste juhuslikult kutsumiseks, rühmade määramiseks või vabatahtlike valimiseks.
  • Virtuaalne mündi pöördmine spordi jaoksPöörake õigel münti meeskonna küljedele, esimesele omamisele, suuremale järjekorrale või muudele spordiotsustele.
  • Juhuslik valija annetamiste jaoksValige juhuslik võitja kannete loenditest, kasutades valikuvalijas — läbipaistev ja õiglane.

Kuidas see töötab

Kõik kolm režiimi — mündiviskamine, ratta keerutamine ja valiku valimine — kasutavad brauseri sisseehitatud Web Crypto API-t (crypto.getRandomValues), et genereerida võiduv tulemus, ning juhivad seejärel animatsiooni täielikult kliendipoolselt CSS-teisenduste ja requestAnimationFrame abil. Server pole kuskil kaasatud.

  1. 1
    Web Crypto valib võitja
    Enne mis tahes animatsiooni algust täidab crypto.getRandomValues Uint32Array-i krüptograafiliselt juhusliku 32-bitise täisarvuga. Modulo-operatsioon kaardistab selle valikute arvule (2 kirjade/kullade jaoks, N ratta või valija jaoks), nii et igal tulemusel on täpselt võrdne tõenäosus.
  2. 2
    Pöördenurk arvutatakse tulemuse jaoks
    Mündi puhul arvutab kood lühima lisapöörde (praeguse kumulatiivse nurga peale), mis lõpeb õige poolega üleval — kirjad 0° juures, kullad 180° juures — ja lisab seejärel 5 täispööret, et see näeks välja nagu tõeline tuiskamine. Ratas teeb sama: leiab nurganihke, mis toob võiduva sektori näidiku alla, lisab 6 täispööret ja rakendab väikest juhuslikku värinat, et näidik ei peatuks alati sektori keskel.
  3. 3
    CSS-üleminekud ja requestAnimationFrame juhivad animatsiooni
    Münt ja ratas animeeritakse CSS transform'iga koos cubic-bezier kergendusõverga, mis on rakendatud ühele kumulatiivsele pöördeväärtusele — kaadripõhist JavaScripti pole vaja pärast nurga seadmist. Valiku valija kasutab selle asemel requestAnimationFrame'i: igal kaadril määrab ruudukujuliselt kasvav intervall, kas esiletõst edasi liigutada, tootes tragamati-stiilis aeglustumise, mis alati peatub eelmääratud võitjal.
  4. 4
    Tulemus avalikustatakse ja logitakse sessiooniajalukku
    setTimeout käivitub, kui animatsioon lõpeb (1,3 s mündi jaoks, 4,3 s ratta jaoks), ja kirjutab tulemuse olekusse. Mündirežiim hoiab käimasolevat sessiooniajalugu kuni 24 viskest koos kirja/kulla arvudega. Kasutajad, kellel on prefers-reduced-motion lubatud, jätavad animatsiooni täielikult vahele ja näevad tulemust koheselt.

Seotud tööriistad

Korduma kippuvad küsimused