Pāriet uz galveno saturu

Monētas mešana un veiksmes rats bez maksas

Izmest virtuālu monētu, pagriezt pielāgojamu riteni vai nejauši izvēlēties no iespēju saraksta. Izmanto kriptogrāfiski drošu jūsu pārlūkprogrammas nejaušības — nav verificējams publisks izloze, tāpēc izvairieties no regulētu konkursu.

Darbojas bezsaistē pēc ielādes

🔒 Visi trīs izmanto jūsu pārlūkprogrammas kriptogrāfiski drošo nejaušo skaitļu ģeneratoru: rezultāts vispirms tiek atlasīts, pēc tam animēts — monēta ir patiesa 50/50, ritenis tiek pagriezts uz jau atlasīto rezultātu, un atlasītājs ir neobjektīvs. No jūsu ierīces neko neiziet. Tas ir taisnīgi ikdienai, bet tas nav verificējams publisks izloze, tāpēc izvairieties no regulētu konkursu vai lielas vērtības lēmumiem.

Biežākie lietojumi

  • Métiet monētu lēmumiemIzmantojiet taisnīgu virtuālu monētas mešanu ātram, neobjektīvam lēmumam, kad jūs iesprūdzis starp divām iespējām.
  • Grieziet ratu nejaušiem komandas uzdevumiemIzmantojiet pielāgojamu ratu nejaušai komandas locekļu piešķiršanai uzdevumiem, lomām vai grupām.
  • Nejaušs studentu atlasītājs klasēmIzmantojiet ratu vai opciju atlasītāju nejaušam studentu izsaukšanai, grupu piešķiršanai vai brīvprātīgo atlasīšanai.
  • Virtuāla monēta sportamMétiet taisnīgu monētu komandas sāniem, pirmajai possesijai, servisa kārtībai vai citiem sporta lēmumiem.
  • Nejaušs atlasītājs dāvanāmAtlasiet nejaušu uzvarētāju no ierakstu saraksta, izmantojot opciju atlasītāju — pārredzams un taisnīgs.

Kā tas darbojas

Visi trīs režīmi — monētas mešana, ripas griešana un opciju izvēle — izmanto pārlūkprogrammas iebūvēto Web Crypto API (crypto.getRandomValues), lai ģenerētu uzvarošo iznākumu, tad vada animāciju pilnībā klienta pusē ar CSS transformācijām un requestAnimationFrame. Nevienā brīdī nav iesaistīts serveris.

  1. 1
    Web Crypto izvēlas uzvarētāju
    Pirms jebkuras animācijas sākuma crypto.getRandomValues aizpilda Uint32Array ar kriptogrāfiski nejaušu 32 bitu veselu skaitli. Moduļa operācija to kartē uz opciju skaitu (2 galvai/astei, N ripai vai izvēlnei), tāpēc katram iznākumam ir tieši vienāda varbūtība.
  2. 2
    Pagrieziena leņķis tiek aprēķināts, lai nokristu uz rezultātu
    Monētai kods aprēķina īsāko papildu pagriezienu (papildus pašreizējam summētajam leņķim), kas beidzas ar pareizo pusi uz augšu — galva pie 0°, aste pie 180° —, tad pievieno 5 pilnus apgriezienus, lai izskatītos kā īsts mets. Ripa dara to pašu: tā atrod leņķisko nobīdi, kas nogādā uzvarošo šķēli zem rādītāja, pievieno 6 pilnus apgriezienus un pielieto nelielu nejaušu svārstību, lai rādītājs vienmēr neapstātos tieši šķēles centrā.
  3. 3
    CSS pārejas un requestAnimationFrame vada animāciju
    Monēta un ripa animējas caur CSS transform ar cubic-bezier izlīdzināšanas līkni, pielietotu vienam uzkrātam pagrieziena leņķim — nav vajadzīgs JavaScript uz katru kadru, kad leņķis ir iestatīts. Opciju izvēle izmanto requestAnimationFrame — katrā kadrā kvadrātiski augošs intervāls nosaka, vai virzīt izcēlumu uz priekšu, radot spēļu automāta palēnināšanās efektu, kas vienmēr apstājas pie iepriekš noteiktā uzvarētāja.
  4. 4
    Rezultāts tiek atklāts un ierakstīts sesijas vēsturē
    setTimeout tiek izsaukts, kad animācija pabeigta (1.3 s monētai, 4.3 s ripai), un ieraksta rezultātu stāvoklī. Monētas režīms uztur pastāvīgu sesijas vēsturi līdz 24 mešanām ar galvas/astes skaitiem. Lietotāji ar ieslēgtu prefers-reduced-motion pilnībā izlaiž animāciju un redz rezultātu uzreiz.

Saistītie rīki

Bieži uzdotie jautājumi