Ugrás a fő tartalomra

Ingyenes Pénzfeldobás és pörgős kerék

Dobjunk fel egy virtuális érmét, forgassunk egy testreszabható kereket, vagy válasszon véletlenszerűen az opciók listájáról. A böngésző kriptográfiailag biztonságos véletlenszerűségét használja — nem igazolható nyilvános sorsolás, ezért kerülje a szabályozott versenyeket.

Betöltés után offline is működik

🔒 Mindhárom a böngésző kriptográfiailag-biztonságos véletlenszám-generátorát használja: az eredményt először kiválasztják, majd animálják — az érme igazi 50/50, a kerék a már kiválasztott eredményéhez forog, és a választó elfogultságmentes. Semmi nem hagyja el az eszközét. Ez tisztességes a alkalmi használathoz, de nem igazolható nyilvános sorsolás, ezért kerülje a szabályozott versenyeket vagy nagy értékű döntéseket.

Gyakori felhasználások

  • Feldobni érméket a döntésekhezHasználjon tisztességes virtuális érme dobást a gyors, elfogulatlan döntésekhez, amikor két lehetőség között rekedt.
  • Kerék elforgatása véletlenszerű csapat feladatokhozAz testreszabható spinkerék segítségével véletlenszerűen rendeljen csapattagokat feladatokhoz, szerepekhez vagy csoportokhoz.
  • Véletlenszerű tanulóválasztó osztályokhozA spinkerék vagy lehetőség választó segítségével véletlenszerűen hívjon fel tanulókat, rendeljen csoportokat vagy válasszon önkénteseket.
  • Virtuális érme dobás sporthozDobjon egy tisztességes érmét a csapatsidók, első birtoklás, szervezi sorrend vagy más sportbeli döntések meghatározásához.
  • Véletlenszerű választó az ajándékozásokhozVálasszon egy véletlenszerű nyertest a bejegyzések listájából a lehetőség választó segítségével — átlátható és igazságos.

Hogyan működik

Mindhárom mód — érmefeldobás, kerékforgatás és opcióválasztó — a böngésző beépített Web Crypto API-ját (crypto.getRandomValues) használja a nyertes eredmény generálásához, majd teljesen kliensoldalon vezérli az animációt CSS transzformációkkal és requestAnimationFrame-mel. Nincs szerver érintve egyetlen ponton sem.

  1. 1
    A Web Crypto választja a nyertest
    Mielőtt bármilyen animáció elindulna, a crypto.getRandomValues egy Uint32Array-t tölt fel egy kriptográfiailag véletlenszerű 32-bites egész számmal. Egy modulo művelet leképezi az opciók számára (2 fej/írás esetén, N a kerékhez vagy választóhoz), így minden eredménynek pontosan egyenlő valószínűsége van.
  2. 2
    A forgásszög kiszámításra kerül, hogy az eredményre essen
    Az érme esetén a kód kiszámítja a legrövidebb további forgatást (a jelenlegi kumulatív szög tetejére), amely a helyes oldalt hozza felül — fej 0°-nál, írás 180°-nál —, majd hozzáad 5 teljes fordulatot, hogy valódi pörgésnek tűnjön. A kerék ugyanezt teszi: megtalálja a szögeltolást, amely a nyertes szeletet a mutató alá hozza, hozzáad 6 teljes fordulatot, és kis véletlen remegést alkalmaz, hogy a mutató ne mindig a szelet pontos közepén álljon meg.
  3. 3
    CSS átmenetek és requestAnimationFrame vezérlik az animációt
    Az érme és a kerék CSS transform-mal animálódik, egy köbös-bézier lassítási görbével alkalmazva egyetlen felhalmozott forgásértékre — nincs szükség képkockánkénti JavaScriptre, miután a szög be van állítva. Az opcióválasztó helyette requestAnimationFrame-et használ: minden képkockán egy kvadratikusan növekvő intervallum határozza meg, hogy előre kell-e lépni a kiemelést, egy nyerőgép-stílusú lassulást produkálva, amely mindig az előre meghatározott nyertesnél áll meg.
  4. 4
    Az eredmény felfedésre kerül, és a munkamenet-előzményekbe naplózásra kerül
    Egy setTimeout aktiválódik, amikor az animáció befejeződik (1,3 mp az érménél, 4,3 mp a keréknél), és beírja az eredményt az állapotba. Az érme mód legfeljebb 24 feldobás futó munkamenet-előzményét tartja fej/írás számokkal. A prefers-reduced-motion beállítást engedélyező felhasználók teljesen kihagyják az animációt, és azonnal látják az eredményt.

Kapcsolódó eszközök

Gyakran ismételt kérdések