Hedhje Monedhe & Rrotë Fati Falas

Hidhni një monedhë virtuale, rrotulloni një rrotë të personalizueshme, ose zgjidhni rastësisht nga një listë opsionesh. Përdor rastësinë kriptografike të sigurt të shfletuesit tuaj — jo një short publik të verifikueshëm, prandaj shmangni konkurse të rregulluara.

Funksionon jashtë linje sapo ngarkohet

🔒 Të tri veglat përdorin gjeneruesin kriptografikisht të sigurt të rastësisë të shfletuesit tënd: rezultati zgjidhet fillimisht, pastaj animohet — monedha ka gjasa vërtet 50/50, rrota rrotullohet deri te rezultati tashmë i zgjedhur, dhe zgjedhësi është pa anësi. Asgjë nuk del nga pajisja jote. Kjo është e drejtë për përdorim të përditshëm, por nuk është një short publik i verifikueshëm, prandaj shmangi konkurset e rregulluara ose vendimet me vlerë të lartë.

Si funksionon

Të tri mënyrat — hedhje monedhe, rrota rrotulluese, dhe zgjedhës opsionesh — përdorin API-në e integruar Web Crypto të shfletuesit (crypto.getRandomValues) për të gjeneruar rezultatin fitues, pastaj drejtojnë animacionin tërësisht nga ana e klientit me transformime CSS dhe requestAnimationFrame. Asnjë server nuk përfshihet në asnjë pikë.

  1. 1
    Web Crypto zgjedh fituesin
    Para se të fillojë ndonjë animacion, crypto.getRandomValues mbush një Uint32Array me një numër të plotë 32-bit kriptografikisht të rastësishëm. Një veprim modulo e harton në numrin e opsioneve (2 për krye/pil, N për rrotën ose zgjedhësin), kështu që çdo rezultat ka saktësisht probabilitet të barabartë.
  2. 2
    Këndi i rrotullimit llogaritet për të rënë te rezultati
    Për monedhën, kodi llogarit rrotullimin shtesë më të shkurtër (mbi këndin aktual kumulativ) që përfundon me anën e saktë lart — krye te 0°, pil te 180° — pastaj shton 5 rrotullime të plota kështu që duket si një hedhje e vërtetë. Rrota bën të njëjtën gjë: gjen zhvendosjen këndore që sjell feten fituese nën shigjetën, shton 6 rrotullime të plota, dhe zbaton një lëkundje të vogël të rastësishme kështu që shigjeta nuk ndalon gjithmonë saktësisht në qendër të fetes.
  3. 3
    Kalimet CSS dhe requestAnimationFrame drejtojnë animacionin
    Monedha dhe rrota animohen përmes transform CSS me një kurbë zbutjeje cubic-bezier të zbatuar mbi një vlerë të vetme rrotullimi të grumbulluar — nuk nevojitet JavaScript për çdo kuadro sapo këndi të vendoset. Zgjedhësi i opsioneve përdor requestAnimationFrame në vend të kësaj: në çdo kuadro, një interval që rritet kuadratikisht përcakton nëse do të përparojë theksimi, duke prodhuar një ngadalësim stil-makinë-llotarie që ndalon gjithmonë te fituesi i paracaktuar.
  4. 4
    Rezultati zbulohet dhe regjistrohet në historikun e sesionit
    Një setTimeout aktivizohet kur animacioni përfundon (1.3 s për monedhën, 4.3 s për rrotën) dhe e shkruan rezultatin në gjendje. Mënyra e monedhës mban një histori sesioni deri në 24 hedhje me numrat e krye/pil. Përdoruesit me prefers-reduced-motion aktive anashkalojnë animacionin krejtësisht dhe e shohin rezultatin menjëherë.

Mjete të ngjashme

Pyetjet e bëra më shpesh