आपल्या बोर्ड गेमचे फासे हरवले आहेत, किंवा रोल-प्लेइंग सत्राच्या मध्यभागी आपल्याला 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 समान शक्य संयोजनांमध्ये पडतात; त्यापैकी नेमके 6 मिळून 7 बनवतात, तर केवळ एक संयोजन 2 आणि नेमके एक संयोजन 12 बनवते — त्यामुळे 7, 12 च्या तुलनेत सहा पट अधिक वेळा येतो, आणि हे पूर्णपणे निष्पक्ष फाशांच्या बाबतीतही खरे आहे. तिसरा फासा जोडल्याने हा नमुना आणखी अरुंद होतो, ज्यामुळे 3d6 चे परिणाम मध्यभागी केंद्रित होतात, आणि म्हणूनच गेम डिझायनर याचा वापर तेव्हा करतात जेव्हा एखाद्या मूल्याला टोकाऐवजी सरासरी असण्याची आवश्यकता असते. एका सहा-बाजूंवाल्या फाशाची सरासरी नेमकी 3.5 असते, त्यामुळे 2d6 ची सरासरी 7 आहे, आणि 3d6 ची सरासरी 10.5 आहे, आणि टेबलावर हे गणित सहसा कोणत्याही एका शक्यतेपेक्षा अधिक उपयुक्त असते. यापैकी काहीही दोष किंवा पक्षपात नाही: फाशांची बेरीज अगदी अशाच प्रकारे काम करते, आणि म्हणूनच दोन्ही जवळपास समान श्रेणी कव्हर करत असूनही गेम एका d12 ऐवजी 2d6 ची मागणी करतो.
फाशांना स्मरणशक्ती नसते. सलग चार वेळा सहा आल्याने पाचव्यांदा सहा येण्याची शक्यता कमी होत नाही, ज्या फाशाने संपूर्ण संध्याकाळ कोणताही 1 दाखवला नाही त्याने त्यामुळे एक 1 कमावलेला नसतो, आणि कोणत्याही बाजूची कधीही “पाळी” येत नाही — प्रत्येक रोल त्याच्या मागील रोलपासून पूर्णपणे स्वतंत्र असतो, आणि आपण एक मिनिटापूर्वी काय केले हे फाशांना माहीत नसते. याच्या विरुद्ध दावा करणाऱ्या प्रवृत्तीला gambler's fallacy असे म्हणतात, आणि याच प्रवृत्तीमुळे आपण स्वतःहून फाशांचे परिणाम शोधण्यात इतके वाईट आहोत: जेव्हा आपल्याला रोलचा एखादा विश्वासार्ह क्रम लिहिण्यास सांगितले जाते, तेव्हा आपण पुनरावृत्ती टाळतो, मोठ्या आणि लहान संख्या आलटून पालटून घेतो, आणि यादृच्छिकता कधी करेल त्यापेक्षा आपण त्यांना अधिक समान रीतीने वितरीत करतो. याउलट, खरी यादृच्छिकता क्लस्टर्स (गट), लांब पट्टे आणि लांब अंतर निर्माण करते. जो क्रम संशयास्पदपणे व्यवस्थित दिसतो, तो प्रत्यक्षात मानवी बोटाचा ठसा असतो.
हा फासे जनरेटर का निवडायचा?
- केवळ-ब्राउझर रोलिंग: फासे आपल्या डिव्हाइसवर टाकले जातात आणि कुठेही पाठवले जात नाहीत
- वेब क्रिप्टो एपीआय यादृच्छिकता: क्रिप्टोग्राफिकदृष्ट्या सुरक्षित, Math.random() चा वापर नाही
- कोणताही modulo bias नाही: rejection sampling तंत्र प्रत्येक बाजूची शक्यता पूर्णपणे समान ठेवते
- गेमला आवश्यक असलेला कोणताही फासा: एकाच वेळी 1 ते 20 फासे, d2 पासून d1000 पर्यंत
- आपल्यासाठी मोजलेली एकूण बेरीज: Σ संपूर्ण रोलची बेरीज करते, त्यामुळे 3d6 मोजण्याची गरज नाही
- अॅनिमेटेड 3D फासे, किंवा त्वरित साध्या अंकांची सूची मिळवण्यासाठी अॅनिमेशन बंद करा
- प्रत्येक फाशासाठी स्वतंत्र रंग, जेणेकरून एका दृष्टिक्षेपात अनेक फासे सहज ओळखता येतील
- “इतिहास” आणि “फाइलमध्ये जतन करा”: टाकलेल्या फाशांचा लॉग ठेवा जो आपल्याला नंतर स्पष्ट करावा लागू शकतो
- अमर्यादित आणि मोफत: कोणतीही नोंदणी नाही, वापराची मर्यादा नाही, आणि आमच्या सर्व्हरवर कोणताही डेटा नाही
फासे अशा प्रत्येक ठिकाणी दिसतात जिथे गेमला असा एक अंक हवा असतो जो कोणीही निवडलेला नसतो. टेबलटॉप रोल-प्लेइंग खेळाडू d20 सोबत हल्ला करतात, पात्राच्या वैशिष्ट्यासाठी 3d6 टाकतात, आणि टक्केवारी तपासणीसाठी d100 टाकतात, आणि ज्या गटाने आपली अर्धी फाशांची पिशवी गमावली आहे ते अद्याप आपला खेळ चालू ठेवू शकतात. सापशिडी आणि स्वयंपाकघरातील टेबलावर पसरलेले इतर बोर्ड गेम्स फासे गमावल्यानंतरही त्याचप्रमाणे पुढे चालू राहतात — फक्त “बाजू” 6 वर आणि “फासे” 2 वर सेट करा, आणि खेळणे सुरू ठेवा. दूरवरून खेळणारे गट शेअर केलेल्या स्क्रीनवर रोल करतात जेणेकरून कोणते फासे पडले आहेत हे सर्वांना पाहता येईल. शिक्षक संभाव्यतेचा क्लासिक पाठ शिकवतात: 2d6 ला 60 वेळा टाका, बेरीज मोजा आणि फळ्यावर पॅटर्नला स्वतःहून तयार होऊ द्या. गेम डिझायनर हे तपासतात की एखाद्या मेकॅनिकचे निकाल छपाईला जाण्यापूर्वी खरोखरच वाटतात तितके टोकाचे आहेत का. आणि मोठ्या संख्येने रोल केवळ हे ठरवतात की कोण आधी खेळेल, कोण चहा आणेल, किंवा दोनपैकी कोणती योजना जिंकेल — हे नशिबावर सोडलेले निर्णय आहेत जे लोक हजारो वर्षांपासून फाशांनी ठरवत आले आहेत.
या साधनामध्ये काही प्रामाणिक मर्यादा आहेत ज्यांबद्दल जाणून घेणे योग्य आहे. एका रोलमध्ये फक्त एकाच प्रकारच्या फाशांचा वापर केला जातो: “बाजू” क्षेत्राचे मूल्य त्या रोलमधील प्रत्येक फाशाला लागू होते, त्यामुळे d20 आणि d6 एकत्र टाकण्यासाठी एकाऐवजी दोन स्वतंत्र रोलची आवश्यकता असेल. यामध्ये कोणतेही मॉडिफायर्स नाहीत, कोणताही फायदा (advantage) किंवा तोटा (disadvantage) नाही, एक्सप्लोडिंग फासे (exploding dice) नाहीत आणि फासे नोटेशन टाइप करण्यासाठी कोणताही बॉक्स नाही — आपल्याला बाजू आणि त्यांची एकूण बेरीज मिळते, आणि त्यानंतर जोडलेला कोणताही नियम आपली स्वतःची जबाबदारी आहे. Σ रोलमध्ये समाविष्ट असलेल्या प्रत्येक फाशाची गणना करते, आणि “सर्व कॉपी करा” आणि “फाइलमध्ये जतन करा” बटणे एकूण बेरजेऐवजी स्वतंत्र बाजू लिहितात. अॅनिमेशन नेहमीच सहा-बाजूंवाला क्यूब दर्शवते, मग बाजूंची संख्या काहीही असो, कारण ती फक्त एक सजावट आहे: तो ज्या बाजूवर थांबतो तो तोच रोल आहे जो इंजिनने आधीच जनरेट केलेला आहे. रोल आपल्या डिव्हाइसवर स्थानिकरित्या होतात, त्यामुळे दूरवरून खेळताना एक व्यक्ती रोल करतो आणि आपली स्क्रीन शेअर करतो — हे साधन असा एक रोल तयार करते जो आपण स्पष्ट करू शकता, असा नाही जो कोणी तिसरा पक्ष प्रमाणित करू शकेल. आणि अर्थातच, एक क्रिप्टोग्राफिकदृष्ट्या निष्पक्ष फासा अद्याप फक्त एक निष्पक्ष फासाच आहे: त्याचा कोणत्याही लॉटरी किंवा कॅसिनो सोडतीशी कोणताही संबंध नाही आणि तो कोणालाही कोणताही फायदा देत नाही. या मर्यादांच्या आत, हमी ठोस आहे — कोणत्याही एका रोलवर कोणत्याही फाशाच्या प्रत्येक बाजूला पडण्याची अगदी समान शक्यता असते.