Monetos metimas ir suktukas nemokamai
Metykite virtualią monetą, sukite pritaikomą ratą arba atsitiktinai pasirinkite iš parinkčių sąrašo. Naudoja kriptografiškai saugų naršyklės atsitiktinumą — tai nėra patikrinamas viešas burtų traukimas, todėl venkite reguliuojamų konkursų.
🔒 Visi trys naudoja kriptografiškai saugų naršyklės atsitiktinių skaičių generatorių: rezultatas pasirenkamas pirmas, tada animuojamas — moneta yra tikras 50/50, ratas sukamas iki jau pasirinkto rezultato, o rinkiklis yra nešališkas. Iš jūsų įrenginio niekas neišeina. Tai sąžininga kasdieniam naudojimui, tačiau tai nėra patikrinamas viešas burtų traukimas, todėl venkite reguliuojamų konkursų ar didelės vertės sprendimų.
Dažniausi naudojimo būdai
- Apverskite monetą sprendimamsNaudokite teisingą virtualią monetų apverčiamą greitiem, nešališkiems sprendimams, kai užsitiksite tarp dviejų pasirinkimų.
- Suktite ratą atsitiktiniams komandos paskirtosNaudokite tinkintą ratą atsitiktiniam komandos narių paskyrymui užduotims, vaidmenims arba grupėms.
- Atsitiktinis mokinių parinkimas klasėmsNaudokite ratą arba parinktį rinktuvę atsitiktiniam studentų skambučiui, grupių paskirtas arba savanorių parinkimui.
- Virtuali moneta apverčiamoji sportuiApverskite teisingą monetą komandų šonams, pirmajai turtui, paslaugos eiliškumui arba kitiems sporto sprendimams nustatyti.
- Atsitiktinis parinktuvas dovanųPasirinkite atsitiktinį laimėtoją iš įrašų sąrašo naudodami parinktį parinkiklį — skaidrus ir teisėtas.
Kaip tai veikia
Visi trys režimai — monetos metimas, sukamasis ratas ir parinkčių rinkiklis — naudoja naršyklės integruotą Web Crypto API (crypto.getRandomValues), kad sugeneruotų laimėjusį rezultatą, tada animaciją valdo visiškai kliento pusėje naudodami CSS transformacijas ir requestAnimationFrame. Serveris nedalyvauja jokiu metu.
- 1Web Crypto parenka laimėtojąPrieš pradedant bet kokią animaciją, crypto.getRandomValues užpildo Uint32Array kriptografiškai atsitiktiniu 32 bitų sveikuoju skaičiumi. Modulio operacija susieja jį su parinkčių skaičiumi (2 monetai — herbas/skaičius, N ratui ar rinkikliui), todėl kiekvienas rezultatas turi lygiai vienodą tikimybę.
- 2Sukimosi kampas apskaičiuojamas taip, kad nusileistų ties rezultatuMonetai kodas apskaičiuoja trumpiausią papildomą sukimąsi (virš dabartinio sukauptojo kampo), kuris baigiasi teisinga puse viršuje — herbas 0°, skaičius 180° — tada prideda 5 pilnus apsisukimus, kad atrodytų kaip tikras vertimasis. Ratas daro tą patį: randa kampinį poslinkį, kuris atveda laimėjusią dalį po rodykle, prideda 6 pilnus apsisukimus ir taiko nedidelį atsitiktinį svyravimą, kad rodyklė ne visada sustotų tiksliai dalies centre.
- 3CSS perėjimai ir requestAnimationFrame valdo animacijąMoneta ir ratas animuojami per CSS transform su cubic-bezier išlyginimo kreive, taikoma vienai sukauptai sukimosi reikšmei — kai kampas nustatytas, nereikia jokio kadro po kadro JavaScript kodo. Parinkčių rinkiklis vietoj to naudoja requestAnimationFrame: kiekviename kadre kvadratiškai augantis intervalas nusprendžia, ar pastumti paryškinimą, sukuriant lošimo automato lėtėjimo efektą, kuris visada sustoja ties iš anksto nustatytu laimėtoju.
- 4Rezultatas atskleidžiamas ir įrašomas į seanso istorijąAnimacijai pasibaigus (1,3 s monetai, 4,3 s ratui) suveikia setTimeout ir įrašo rezultatą į būseną. Monetos režimas kaupia iki 24 metimų seanso istoriją su herbo/skaičiaus skaičiais. Vartotojams su įjungtu prefers-reduced-motion nustatymu animacija visiškai praleidžiama ir rezultatas parodomas iš karto.
Susiję įrankiai
Atsitiktinio rato sukimas
Įveskite vardų ar pasirinkimų sąrašą, pasukite ratą ir leiskite jam atsitiktinai išrinkti vieną, su spragtelėjimo garsu, konfeti ir galimybe pašalinti kiekvieną laimėtoją.
Atsitiktinių skaičių generatorius
Generuokite atsitiktinius skaičius bet kokiame diapazone, kurkite unikalius skaičių sąrašus arba meskite kauliukus. Naudoja kriptografiškai saugų atsitiktinumą.
Atsitiktinių komandų generatorius
Padalinkite vardų sąrašą į subalansuotas atsitiktines komandas — pagal komandų skaičių ar komandos dydį. Kriptografiškai teisingas maišymas, momentalinis permaišymas.