LibraTool logoLibraTool

Партофтани танга ва чархи гардон-и ройгон

Тангаи виртуалиро партоед, чархи танзимшавандаро гардонед ё аз рӯйхати имконот тасодуфан интихоб кунед. Тасодуфияти криптографии амни браузери шуморо истифода мебарад — қуръакашии оммавии тасдиқшаванда нест, бинобар ин барои мусобиқаҳои танзимшаванда истифода набаред.

Ҳамин ки бор шуд офлайн кор мекунад

🔒 Ҳар се абзор аз генератори тасодуфии рамзнокшудаи браузери шумо истифода мебаранд: аввал натиҷа интихоб мешавад, сипас аниматсия иҷро мешавад — танга воқеан 50/50 аст, чарх ба натиҷаи аллакай интихобшуда мегардад ва интихобгар беғараз аст. Ҳеҷ чиз аз дастгоҳи шумо намебарояд. Ин барои истифодаи оддӣ одилона аст, вале қуръаи расмии тафтишшаванда нест, аз ин рӯ барои мусобиқаҳои танзимшуда ё қарорҳои муҳим истифода набаред.

Чӣ тавр он кор мекунад

Ҳар се ҳолат — партофтани танга, чархи гардон ва интихобгари вариант — API-и дарунсохти Web Crypto-и браузерро (crypto.getRandomValues) истифода мебаранд, то натиҷаи ғолибро тавлид кунанд, сипас аниматсияро пурра тарафи-мизоҷ бо табдилҳои CSS ва requestAnimationFrame ҳаракат медиҳанд. Ягон сервер дар ягон нуқта дахл надорад.

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

Абзорҳои марбут

Саволҳои зуд-зуд додашаванда