Падкід манеты і кола з раскруткай — бясплатна
Перакіньце віртуальную манету, круціце наладжвальнае кола ці выпадкова абярыце варыянт са спісу. Выкарыстоўвае крыптаграфічна бяспечную выпадковасць вашага браўзера — гэта не правяраемы публічны розыгрыш, таму пазбягайце рэгуляваных конкурсаў.
🔒 Усе тры інструменты выкарыстоўваюць крыптаграфічна бяспечны генератар выпадковых лікаў вашага браўзера: спачатку выбіраецца вынік, а потым ён анімуецца — манета сапраўды выпадае 50/50, кола круціцца да ўжо выбранага выніку, а выбар са спісу бесстаронні. Нічога не пакідае вашу прыладу. Гэта справядліва для звычайнага выкарыстання, але не з'яўляецца правяраемым публічным розыгрышам, таму пазбягайце рэгуляваных конкурсаў ці рашэнняў з высокімі ставкамі.
Тыповыя выкарыстанні
- Кіньце манету, каб прынаць рашэннеПадкіньце сумленную віртуальную манетку, каб хутка і бесстаронне прыняць рашэнне, калі вагаецеся паміж двума варыянтамі.
- Крушь Колеса для выпадкова распрацоўкі камандыВыкарыстоўвайце налаштавальны колес спіна, каб выпадкова прырадзіць чальцаў каманды да задачаў, ролеў ці групаў.
- Выпадковы адбор студэнта для класаўВыкарыстоўвайце спінальнае колес ці абрая опцыі, каб выпадкова развяжаць студэнтаў, прырадзіць групы ці абраць волан.
- Віртуальна кідаць манету для спортуКіньце справядліву манету, каб вызначыць бакі каманды, першы прываў, парадак падачы ці іншыя спортыўныя рашэнні.
- Выпадковы абрана для прамоцыяўАбярыце выпадкова переможца з спіса ўваходаў, выкарыстоўвая Option Picker — прозрацай і справядліва.
Як гэта працуе
Усе тры рэжымы — кідок манеты, кручэнне кола і выбар варыянта — выкарыстоўваюць убудаваны Web Crypto API браўзера (crypto.getRandomValues), каб стварыць пераможны вынік, потым кіруюць анімацыяй цалкам на баку кліента з дапамогай CSS-трансфармацый і requestAnimationFrame. Сервер не задзейнічаны ні ў адным пункце.
- 1Web Crypto абірае пераможцуПерад пачаткам любой анімацыі crypto.getRandomValues запаўняе Uint32Array крыптаграфічна выпадковым 32-бітным цэлым лікам. Аперацыя модуля супастаўляе яго з колькасцю варыянтаў (2 для арол/рэшка, N для кола ці выбарніка), так што кожны вынік мае дакладна роўную верагоднасць.
- 2Вугал павароту вылічваецца, каб трапіць на вынікДля манеты код вылічвае найкарацейшы дадатковы паварот (зверху над бягучым сумарным вуглом), які заканчваецца правільным бокам зверху — арол на 0°, рэшка на 180° — потым дадае 5 поўных абаротаў, каб выглядала як сапраўдны перакат. Кола робіць тое ж самае: яно знаходзіць вуглавы зрух, які прыводзіць пераможны сектар пад указальнік, дадае 6 поўных абаротаў і прымяняе невялікае выпадковае дрыжанне, так што ўказальнік не заўсёды спыняецца дакладна ў цэнтры сектара.
- 3CSS-пераходы і requestAnimationFrame кіруюць анімацыяйМанета і кола анімуюцца праз CSS transform з крывой змякчэння cubic-bezier, прыменанай да адзінага накопленага значэння павароту — JavaScript для кожнага кадра не патрэбны, як толькі вугал зададзены. Выбарнік варыянтаў замест гэтага выкарыстоўвае requestAnimationFrame: на кожным кадры квадратычна расце інтэрвал, які вызначае, ці варта прасунуць падсветку, ствараючы запаволенне ў стылі гульнявога аўтамата, якое заўсёды спыняецца на загадзя вызначаным пераможцы.
- 4Вынік раскрываецца і запісваецца ў гісторыю сесііsetTimeout спрацоўвае, калі анімацыя завяршаецца (1.3 с для манеты, 4.3 с для кола) і запісвае вынік у стан. Рэжым манеты вядзе бягучую гісторыю сесіі да 24 кідкоў з падлікам арол/рэшка. Карыстальнікі з уключаным prefers-reduced-motion цалкам прапускаюць анімацыю і бачаць вынік неадкладна.
Звязаныя інструменты
Кола выбару
Увядзіце спіс імёнаў або варыянтаў, круціце кола і дазвольце яму выбраць адзін выпадковы пункт з гукам цікання, канфеці і магчымасцю выдаляць кожнага пераможцу.
Генератар выпадковых лічбаў
Генеруйце выпадковыя лічбы ў любым дыяпазоне, стварайце ўнікальныя спісы лічбаў або кідайце косці. Выкарыстоўвае крыптаграфічна бяспечную выпадковасць.
Генератар выпадковых каманд
Разбівайце спіс імён на збалансаваныя выпадковыя каманды — па колькасці каманд або памеры каманды. Крыптаграфічна справядлівае перамешванне, імгненнае паўторнае перамешванне.