Үстел ойынынан сүйектерді жоғалтып алдыңыз ба немесе рөлдік ойын сессиясының ортасында d20 қажет пе? Бұл тегін онлайн сүйек лақтыру құралы қол астында жоқ кез келген сүйекті алмастырады. «Сүйектер» өрісіне қанша сүйек лақтырғыңыз келетінін — 1-ден 20-ға дейінгі кез келген санды орнатыңыз, олардың әрқайсысында неше жақ бар екенін «Жақтары» өрісінде көрсетіп, «Жасау» түймесін басыңыз. Бет екі кәдімгі алты жақты сүйекпен ашылады, сондықтан алғашқы лақтыруды бір рет басу арқылы жасауға болады. Әрбір сүйек бөлек көрсетіледі, ал лақтырудың жалпы сомасы олардың астында пайда болады, сондықтан 3d6 үшін ойша есептеудің қажеті жоқ.
Әрбір лақтыруды браузеріңіз Web Crypto API (crypto.getRandomValues) арқылы орындайды, ол Math.random() сияқты JavaScript жалған кездейсоқ функциясының орнына тікелей жүйеңіздің өзіндік кездейсоқтық көзінен криптографиялық тұрғыдан күшті кездейсоқ мәндерді қамтамасыз етеді. 32 биттік шикі мәнді жақтың санына айналдыру — бұл виртуалды сүйектердің байқатпай қателесетін тұсы: бұл мәнді жақтардың санына бөлуден қалған қалдықты (модуль) алу — ең анық, сондай-ақ біржақты тәсіл, өйткені егер жақтардың саны 2^32-ге қалдықсыз бөлінбесе, онда төменгі жақтар қалғандарына қарағанда сәл жиірек түседі. Бұл кемшілік modulo bias деп аталады және ол теориялық емес, өлшенетін нәрсе. Оның орнына бұл құрал жақтар санының ең үлкен нақты еселігінен асатын кез келген мәнді алып тастап, қайтадан таңдау жасайды — бұл әдіс rejection sampling деп аталады. Ол бірнеше қосымша таңдауды қажет етеді, бірақ шамамен емес, нақты кепілдік береді. Серверге ештеңе жіберілмейді, ештеңе тіркелмейді, ал бет жүктелгеннен кейін интернет байланысы үзілсе де, сіздің лақтыруларыңыз жұмысын жалғастыра береді.
Екі өріс барлық жұмысты орындайды және олар ойындарда қазірдің өзінде қолданылатын сүйек нотациясымен тікелей сәйкес келеді. «Сүйектер» — бір уақытта қанша сүйек лақтыратыныңызды көрсетеді, 1-ден 20-ға дейін. «Жақтары» — олардың әрқайсысының қанша жағы бар екенін көрсетеді, 2-ден 1000-ға дейін — бұл d2 тиын лақтыруға, d4, d6, d8, d10, d12 және d20 толық рөлдік ойын жиынтығына, жүздік d100-ге және ойын бұдан тыс ойлап таба алатын кез келген нәрсеге жеткілікті. NdM форматында жазылған кез келген нәрсе дәл осы екі өріс: 2d6 дегеніміз — «Сүйектер» 2-де, ал «Жақтары» 6-да екенін білдіреді, ал жеке d20 болса — «Сүйектер» 1 және «Жақтары» 20 деген сөз. Кейіпкердің сипаттамасы үшін 3d6 лақтырып жатырсыз ба? «Сүйектер» өрісін 3-ке, «Жақтары» өрісін 6-ға қойып, «Жасау» түймесін басыңыз, сонда үш жақ та өздерінің жалпы сомасымен бірге келеді. Екі қосқыш нәтиженің мәнін емес, оның қалай көрінетінін өзгертеді. Әдепкі бойынша қосылып тұратын «Анимациялық 3D сүйектер» әр сүйек тоқтағанға дейін кубты айналдырады — оны өшірсеңіз, сандар бірден қарапайым тізім ретінде пайда болады. «Кездейсоқ түс» стандарты қызылдың орнына әр сүйекке өзіндік түс береді, және ол тек «Анимациялық 3D сүйектер» қосылып тұрған кезде ғана жұмыс істейді, өйткені қарапайым тізімде бояйтын сүйектер жоқ. Нүктелер тек алты жақты сүйек үшін ғана салынады; кез келген басқа түр лақтырылған санды тікелей жағында көрсетеді, өйткені он жеті жақты сүйек үшін нүктелердің стандартты үлгісі жоқ.
Нәтиженің астында математикалық есептеулерден құтқаратын жол бар: Σ — бұл лақтырудағы әрбір сүйектің қосындысы, оның жанында лақтыруға қанша уақыт кеткені және оның жергілікті түрде жасалғаны туралы ескертпе бар. «Барлығын көшіру» нәтижені алмасу буферіне салады, ал «Файлға сақтау» оны мәтіндік файлға жазады — екеуі де қосындының орнына әрқайсысы бір жолда орналасқан жеке жақтарды береді, сондықтан не лақтырылғанының журналы не лақтырылғанының журналы болып қала береді. «Тарих» соңғы 10 лақтыруды өз браузеріңізде сақтайды: олардың біреуін сомасымен бірге экранға қайтару үшін басыңыз, жеке жазбаны көшіріңіз немесе жойыңыз, немесе қалаған кезде бүкіл тізімді тазалаңыз. «Тазалау» нәтижелер терезесін босатады, бірақ сіздің баптауларыңызды сол қалпында қалдырады.
Виртуалды сүйектер нағыз сүйектерден жақсырақ па? Әділдік тұрғысынан алғанда — иә, және оның себебі физикада. Кәдімгі құйылған сүйектің нүктелері бұрғыланып, боялады, ал әрбір бұрғыланған нүкте материалды алып тастайды, сондықтан алты жағы — өзінің алты ойығымен — ақырында сәл ғана ең жеңілі, ал оған қарама-қарсы жағы сәл ғана ең ауыры болып шығады. Казинодағы precision dice дәл осы себеппен бар: олардың нүктелері бірдей тығыздықтағы материалмен тегіс етіп толтырылған, олардың жиектері дөңгелектенудің орнына тік бұрышпен кесілген, олар миллиметрдің бөлшегіне дейін дәлдікпен өңделген, соған қарамастан олар бірнеше сағат ойнағаннан кейін қолданыстан шығарылады. Үстел ойыны қорабындағы сүйектерде бұл мүмкіндіктердің ешқайсысы жоқ және уақыт өте келе олар одан әрі нашарлайды — ұшып түскен бұрышы, қолда талай жыл шайқаудан жұмырланған жиегі, үстелдің орнына көрпе үстіне лақтырылған сүйек, шын мәнінде мүлде кездейсоқ болмайды. Виртуалды сүйектің қате болуы мүмкін геометриясы жоқ, ол тозбайды және лақтыру техникасы туралы дауласуға негіз жоқ, және ол өзінің он мыңыншы лақтыруында біріншісіндегідей жұмыс істейді. Оның қолынан келмейтіні — сіздің алақаныңызда жату ғана. Шынайы қорытынды мынадай: бұл құрал әділдікте жеңіп, рәсімде ұтылады.
Әділ сүйек әділ жалпы сомамен бірдей емес. Бір сүйектің әрбір жағының түсу ықтималдығы бірдей, бірақ сүйектерді бір-біріне қоса бастаған сәтте, сомалардың теңдігі жойылады, және бұл адамдарды үнемі таң қалдырады. Екі алты жақты сүйек 36 бірдей ықтимал комбинациямен түседі; олардың алтауы қосындысында 7-ні құрайды, ал дәл біреуі 2-ні және біреуі 12-ні береді — сондықтан 7 саны тіпті мінсіз әділ сүйектердің өзінде 12-ге қарағанда алты есе жиі түседі. Үшінші сүйекті қосу бұл заңдылықты одан әрі тарылтады, сондықтан 3d6 нәтижелері орталықтың айналасына жиналады, және ойын дизайнерлері мән экстремалды емес, орташа болуы керек кезде осыған жүгінеді. Бір алты жақты сүйектің орташа мәні дәл 3,5, сондықтан 2d6 орташа мәні 7, ал 3d6 орташа мәні 10,5 болады, және үстел басындағы бұл арифметика кез келген жеке ықтималдыққа қарағанда әдетте пайдалырақ. Мұның ешқайсысы да біржақтылық емес: сүйектерді қосу осылай жұмыс істейді, сондықтан екеуі де бірдей ауқымды қамтығанына қарамастан, ойын бір d12 орнына 2d6-ны талап етеді.
Сүйектердің жады жоқ. Қатарынан төрт рет алтының түсуі бесінші алтының түсу ықтималдығын төмендетпейді, бүкіл кеш бойы 1 санын көрсетпеген сүйек сол себепті оны еншілеп қойған жоқ, және ешбір жақ ешқашан «күтілетін» болып шықпайды — әрбір лақтыру оның алдындағы лақтыруларға мүлдем тәуелсіз, ал сүйектер бір минут бұрын не істегенін біле алмайды. Бұған қарсы тұратын инстинкт gambler's fallacy деп аталады және дәл осы инстинкттің кесірінен біз сүйек нәтижелерін ойлап табуда нашармыз: бізден нанымды лақтырулар тізбегін жазу сұралғанда, біз қайталанулардан аулақ боламыз, жоғары және төмен сандарды кезектестіреміз және оларды кездейсоқтық жасайтындай емес, әлдеқайда біркелкі таратамыз. Нағыз кездейсоқтық болса топтасуларды, ұзын тізбектерді және ұзақ үзілістерді тудырады. Күдікті түрде реттелген сияқты көрінетін тізбек — бұл адамның саусақ ізі.
Осы сүйек лақтыру құралын неліктен таңдау керек?
- Тек браузердегі лақтыру: сүйектер сіздің құрылғыңызда лақтырылады және ешқайда жіберілмейді
- Web Crypto API кездейсоқтығы: криптографиялық қауіпсіз, Math.random() қолданылмайды
- Modulo bias жоқ: rejection sampling техникасы әрбір жақтың мүмкіндігін бірдей сақтайды
- Ойын талап ететін кез келген сүйек: бір уақытта 1-ден 20 сүйекке дейін, d2-ден d1000-ға дейін
- Жалпы сома сіз үшін есептеледі: Σ бүкіл лақтыруды қосады, сондықтан 3d6 есептеуді қажет етпейді
- Анимациялық 3D сүйектер, немесе сандардың қарапайым тізімін бірден алу үшін анимацияны өшіріңіз
- Көптеген сүйектерді бір қарағанда оңай ажырату үшін әр сүйекке бір түс беріледі
- «Тарих» және «Файлға сақтау»: кейін негіздеу қажет болуы мүмкін лақтырулар журналын сақтаңыз
- Шектеусіз және тегін: тіркелу, қолдану шектеулері және біздің серверлерде ешқандай деректер жоқ
Сүйектер ойынға ешкім таңдамаған сан қажет болған жердің бәрінде пайда болады. Үстелдегі рөлдік ойындардың ойыншылары d20-мен шабуыл лақтыруларын жасайды, кейіпкердің сипаттамасы үшін 3d6 және пайыздық тексеру үшін d100 лақтырады, ал сүйек салынған дорбасының жартысын жоғалтып алған топ бәрібір де ойынды жалғастырады. Нарды партиясы және ас үй үстеліндегі үстел ойындары сүйектер жоғалғаннан кейін дәл осылай жұмыс істейді — «Жақтары» өрісін 6-ға, «Сүйектер» өрісін 2-ге қойып, ойнауды жалғастырыңыз. Қашықтан ойнайтын топтар бәрі бірдей жақтардың түскенін көруі үшін ортақ экранда лақтырады. 5-сыныпта мұғалімдер ықтималдықтардың классикалық сабағын өткізеді: 2d6-ны 60 рет лақтырыңыз, сомаларды санап, заңдылықтың тақтада өзінен өзі сызылуына мүмкіндік беріңіз. Ойын дизайнерлері қандай да бір механика баспаға кетпей тұрып, оның шынымен де көрініп тұрғандай болжап білгісіз екенін тексереді. Ал көптеген лақтырулар жай ғана кім бірінші ойнайтынын, кім кофе сатып алатынын немесе екі жоспардың қайсысы жеңетінін шешеді — бұл адамдар бірнеше мың жыл бойы сүйектермен шешіп келе жатқан кездейсоқтыққа қалдырылған шешімдер.
Бұл құралдың білуге тұрарлық бірнеше адал шектеулері бар. Бір лақтыруда сүйектің тек бір түрі қолданылады: «Жақтары» өрісіндегі мән сол лақтырудағы әрбір сүйекке қолданылады, сондықтан d20 мен d6 бірге бір лақтырудың орнына екі бөлек лақтыруды талап етеді. Ешқандай түрлендіргіштер жоқ, артықшылық немесе кемшілік жоқ, жарылатын сүйектер және сүйек нотациясын енгізу өрісі жоқ — сіз жақтарды және олардың қосындысын аласыз, ал оған қосылатын кез келген ереже сіздің міндетіңіз болып табылады. Σ лақтырудағы әрбір сүйекті есептейді, ал «Барлығын көшіру» және «Файлға сақтау» түймелері соманың орнына жеке жақтарды жазады. Анимация жақтардың санына қарамастан әрқашан алты жақты куб болып табылады, өйткені ол тек декорация: оның түсетін жағы — бұл қозғалтқыш орындап қойған лақтыру. Лақтырулар сіздің құрылғыңызда жергілікті түрде орындалады, сондықтан қашықтан ойнау кезінде бір адам лақтырады және өз экранын бөліседі — бұл құрал үшінші тарап куәландыра алатын лақтыруды емес, сіз түсіндіре алатын лақтыруды жасайды. Сонымен қатар, криптографиялық әділ сүйек бәрібір тек әділ сүйек болып табылады: оның ешқандай лотерея немесе казино ұтыс ойындарына қатысы жоқ және ол ешкімге ешқандай артықшылық бермейді. Осы шектерде кепілдік берік — кез келген сүйектің әрбір жағы әрбір жеке лақтыру кезінде дәл бірдей ықтималдыққа ие.