Партофтани танга ва чархи гардон-и ройгон
Тангаи виртуалиро партоед, чархи танзимшавандаро гардонед ё аз рӯйхати имконот тасодуфан интихоб кунед. Тасодуфияти криптографии амни браузери шуморо истифода мебарад — қуръакашии оммавии тасдиқшаванда нест, бинобар ин барои мусобиқаҳои танзимшаванда истифода набаред.
🔒 Ҳар се абзор аз генератори тасодуфии рамзнокшудаи браузери шумо истифода мебаранд: аввал натиҷа интихоб мешавад, сипас аниматсия иҷро мешавад — танга воқеан 50/50 аст, чарх ба натиҷаи аллакай интихобшуда мегардад ва интихобгар беғараз аст. Ҳеҷ чиз аз дастгоҳи шумо намебарояд. Ин барои истифодаи оддӣ одилона аст, вале қуръаи расмии тафтишшаванда нест, аз ин рӯ барои мусобиқаҳои танзимшуда ё қарорҳои муҳим истифода набаред.
Чӣ тавр он кор мекунад
Ҳар се ҳолат — партофтани танга, чархи гардон ва интихобгари вариант — API-и дарунсохти Web Crypto-и браузерро (crypto.getRandomValues) истифода мебаранд, то натиҷаи ғолибро тавлид кунанд, сипас аниматсияро пурра тарафи-мизоҷ бо табдилҳои CSS ва requestAnimationFrame ҳаракат медиҳанд. Ягон сервер дар ягон нуқта дахл надорад.
- 1Web Crypto ғолибро интихоб мекунадПеш аз оғози ягон аниматсия, crypto.getRandomValues Uint32Array-ро бо бутуни 32-бита тасодуфии криптографӣ пур мекунад. Амали модуло онро ба шумораи вариантҳо (2 барои рӯ/пушт, N барои гардон ё интихобгар) харита мекунад, бинобар ин ҳар натиҷа эҳтимолияти дуруст баробар дорад.
- 2Зовияи чарх барои расидан ба натиҷа ҳисоб карда мешавадБарои танга, рамз кӯтоҳтарин чархиши иловагиро (болои зовияи ҷамъии ҷорӣ) ҳисоб мекунад, ки бо рӯи дурусти боло анҷом меёбад — рӯ дар 0°, пушт дар 180° — сипас 5 чархиши пурраро илова мекунад, то ба монанди чархзании воқеӣ намоён шавад. Гардон ҳамин корро мекунад: он гузаришти кунҷиро меёбад, ки бурраи ғолибро зери нишонгар меорад, 6 чархиши пурраро илова мекунад ва ларзиши хурди тасодуфиро татбиқ мекунад, то нишонгар ҳамеша дар маркази бурра қатъ нашавад.
- 3Гузаришҳои CSS ва requestAnimationFrame аниматсияро ҳаракат медиҳандТанга ва гардон тавассути табдили CSS бо каҷхаттаи cubic-bezier татбиқшуда болои як қиммати чархиши ҷамъшуда аниматсия мешаванд — ҳамин ки зовия гузошта шуд, ягон JavaScript-и ҳарфрейма лозим нест. Интихобгари вариант ба ҷои он requestAnimationFrame-ро истифода мебарад: ҳар фрейм, фосилаи квадратикан афзоянда муайян мекунад, ки оё нишонаи бахшро пеш барад, тавлиди суст-шавии мошини бозигар, ки ҳамеша дар ғолиби пешакӣ муайяншуда қатъ мешавад.
- 4Натиҷа ошкор ва дар таърихи сессия сабт карда мешавадsetTimeout вақте ки аниматсия анҷом мешавад (1.3 с барои танга, 4.3 с барои гардон) кор мекунад ва натиҷаро ба ҳолат менависад. Ҳолати танга то 24 партофтани ҷории таърихи сессияро бо шумориши рӯ/пушт нигоҳ медорад. Корбароне ки prefers-reduced-motion фаъол доранд, пурра аниматсияро мегузаранд ва натиҷаро фавран мебинанд.
Абзорҳои марбут
Тавлидкунандаи рақами тасодуфӣ
Рақамҳои тасодуфиро дар ҳар диапазон тавлид кунед, рӯйхати рақамҳои беназир созед ё завр партоед. Тасодуфияти криптографӣ амнро истифода мебарад.
Тавлидкунандаи дастаи тасодуфӣ
Рӯйхати номҳоро ба дастаҳои тасодуфии мувозина ҷудо кунед — аз рӯи шумораи даста ё андозаи даста. Омезиши одилонаи криптографӣ, дасти-нав-омехтани фаврӣ.
Интихобкунандаи ранг ва генератори палитра
Рангҳоро интихоб кунед, байни HEX/RGB/HSL табдил диҳед ва палитраҳои ҳамоҳанг эҷод кунед.