Kehilangan dadu permainan papan anda, atau perlukan d20 di tengah-tengah sesi permainan peranan (role-playing)? Penjana dadu dalam talian percuma ini menggantikan sebarang dadu yang tidak ada pada anda sekarang. Dalam ruangan “Dadu” tetapkan berapa banyak yang anda ingin baling — sebarang nombor antara 1 dan 20 — dalam ruangan “Permukaan” nyatakan berapa banyak permukaan yang ada pada setiap satu daripadanya, dan tekan “Jana”. Halaman ini dibuka dengan dua dadu enam permukaan biasa, jadi balingan pertama hanya sejauh satu klik sahaja. Setiap dadu dipaparkan secara berasingan, dan jumlah keseluruhan balingan muncul tepat di bawahnya, jadi 3d6 tidak lagi memerlukan pengiraan congak.
Setiap balingan dilaksanakan oleh pelayar anda melalui Web Crypto API (crypto.getRandomValues), yang menarik nilai rawak kriptografi yang kukuh terus daripada sumber kerawakan sistem anda sendiri, bukannya fungsi JavaScript rawak pseudo seperti Math.random(). Menukar nilai 32-bit mentah kepada bilangan permukaan adalah di mana dadu maya selalunya melakukan kesilapan secara senyap: membahagikannya dengan bilangan permukaan dan mengambil bakinya (modulo) adalah pendekatan yang paling ketara tetapi juga berat sebelah, kerana jika bilangan permukaan tidak membahagikan tepat 2^32, permukaan yang lebih rendah akan jatuh sedikit lebih kerap berbanding yang lain. Kelemahan ini dipanggil modulo bias, dan ia boleh diukur, bukan sekadar teori. Sebaliknya, alat ini membuang sebarang nilai yang melebihi gandaan tepat terbesar bagi bilangan permukaan dan menarik sekali lagi — satu teknik yang dipanggil rejection sampling. Ia memerlukan beberapa cabutan tambahan secara rawak, tetapi ia memberikan jaminan yang tepat dan bukannya anggaran. Tiada apa-apa yang dihantar ke pelayan, tiada apa-apa yang disimpan dalam log, dan sebaik sahaja halaman dimuatkan balingan anda terus berfungsi walaupun sambungan internet anda terputus.
Dua ruangan tersebut melakukan semua kerja, dan ia sepadan secara langsung dengan tatatanda dadu yang telah digunakan oleh permainan. “Dadu” bermaksud bilangan yang anda baling serentak, dari 1 hingga 20. “Permukaan” bermaksud berapa banyak permukaan yang ada pada setiap dadu, dari 2 hingga 1000 — cukup untuk lambungan syiling d2, set permainan peranan yang lengkap (d4, d6, d8, d10, d12, dan d20), peratusan d100, dan apa-apa sahaja yang permainan boleh fikirkan di luar itu. Apa-apa yang ditulis dalam format NdM secara literal adalah dua ruangan ini: 2d6 bermaksud menetapkan “Dadu” kepada 2 dan “Permukaan” kepada 6, manakala d20 sahaja bermaksud “Dadu” 1 dan “Permukaan” 20. Membaling 3d6 untuk sifat watak? Tetapkan “Dadu” kepada 3, “Permukaan” kepada 6, tekan “Jana”, dan ketiga-tiga permukaan akan muncul bersama dengan jumlahnya. Dua suis menukar cara hasil kelihatan, bukan kandungannya. “Dadu 3D Animasi”, yang dihidupkan secara lalai, melukis kiub berputar untuk setiap dadu sehingga ia berhenti — matikan ia, dan nombor tersebut muncul serta-merta sebagai senarai ringkas. “Warna rawak” memberikan setiap dadu warna tersendiri dan bukannya merah standard, dan ini berfungsi hanya semasa “Dadu 3D Animasi” dihidupkan, kerana senarai ringkas tiada dadu untuk diwarnakan. Titik-titik hanya dilukis untuk dadu enam permukaan; sebarang jenis lain memaparkan nombor yang jatuh terus pada permukaan, memandangkan tiada susun atur titik standard wujud untuk dadu tujuh belas permukaan.
Satu baris di bawah hasil tersebut menyelamatkan anda daripada pengiraan matematik: Σ ialah jumlah setiap dadu yang disertakan dalam balingan, disertai dengan masa yang diambil untuk balingan itu dan nota bahawa ia dijana secara setempat. Butang “Salin Semua” meletakkan hasilnya pada papan keratan anda, dan “Simpan ke fail” menulisnya pada fail teks — kedua-duanya memberikan anda permukaan individu, satu pada setiap baris dan bukannya sekadar jumlah, supaya log balingan anda kekal sebagai rekod yang tepat tentang apa yang sebenarnya jatuh. “Sejarah” mengekalkan 10 balingan terakhir anda secara langsung dalam pelayar anda: klik salah satu daripadanya untuk mengembalikannya ke skrin bersama dengan jumlahnya, salin atau padam satu entri tunggal, atau kosongkan keseluruhan senarai apabila anda mahu. Butang “Kosongkan” mengosongkan tetingkap hasil tetapi membiarkan tetapan anda tidak disentuh.
Adakah dadu maya lebih baik daripada yang fizikal? Dari segi keadilan — ya, dan sebabnya ialah ciri fizikal. Dadu acuan biasa mempunyai titik-titiknya yang digerudi dan dicat, dan setiap lubang yang digerudi membuang sedikit bahan, jadi permukaan nombor enam — dengan enam lubangnya — akhirnya menjadi yang sedikit paling ringan, dan permukaan yang bertentangan dengannya menjadi yang sedikit paling berat. Precision dice (dadu ketepatan) kasino wujud dengan tepat kerana sebab ini: titik-titiknya diisi dengan bahan berketumpatan sama pada permukaan yang rata, tepinya dipotong pada sudut yang tepat dan bukannya dibulatkan, ia dimesin mengikut pecahan milimeter yang tepat, namun walaupun begitu, selepas beberapa jam permainan ia akan dibuang. Dadu dalam kotak permainan papan tidak mempunyai sebarang sifat ini dan bertambah buruk apabila ia semakin lusuh — penjuru yang sumbing, tepi yang membulat akibat sentuhan tangan bertahun-tahun, dadu yang dibaling di atas selimut dan bukannya meja, realitinya ini sama sekali tidak rawak. Dadu maya tidak mempunyai geometri yang boleh menyebabkan kesilapan, ia tidak haus, dan ia tidak memberi ruang untuk mempertikaikan teknik lemparan, dan ia bertindak pada balingan kesepuluh ribu seperti yang dilakukan pada balingan pertama. Apa yang tidak boleh dilakukannya — adalah berehat dengan selesa di tapak tangan anda. Kesimpulan yang jujur ialah penjana ini menang dari segi keadilan tetapi kalah dari segi ritual.
Dadu yang adil dan jumlah yang adil bukanlah perkara yang sama. Setiap permukaan bagi satu dadu mempunyai peluang yang sama untuk jatuh, tetapi apabila anda mula menjumlahkan dadu, jumlahnya kehilangan kesaksamaan ini, dan ia mengejutkan orang ramai sepanjang masa. Dua dadu enam permukaan jatuh menjadi 36 kombinasi dengan kebarangkalian yang sama; tepat 6 daripadanya berjumlah 7, manakala hanya satu cara menghasilkan 2 dan tepat satu cara menghasilkan 12 — jadi 7 muncul enam kali lebih kerap berbanding 12, dan ini benar walaupun untuk dadu yang adil sepenuhnya. Menambah dadu ketiga menjadikan corak ini lebih sempit, menyebabkan hasil 3d6 berkelompok di sekitar pertengahan, dan inilah sebabnya pereka permainan menggunakannya apabila nilai perlu berada pada nilai purata dan bukannya pada hujung yang ekstrem. Purata untuk satu dadu enam permukaan tepat pada 3.5, yang menjadikan purata 2d6 bersamaan 7, dan purata 3d6 bersamaan 10.5, dan di atas meja permainan matematik ini selalunya lebih berguna berbanding mana-mana kebarangkalian pun. Tiada satu pun daripada perkara ini yang merupakan kesilapan atau berat sebelah: jumlah dadu sememangnya berfungsi dengan cara itu, dan itulah sebab mengapa permainan meminta 2d6 berbanding satu d12 tunggal, walaupun kedua-duanya meliputi julat angka yang hampir sama.
Dadu tidak mempunyai ingatan. Membaling angka enam empat kali berturut-turut sama sekali tidak mengurangkan peluang mendapat angka enam buat kali kelima, dadu yang tidak menunjukkan sebarang 1 sepanjang malam tidak memperoleh satu pun kerana itu, dan tiada permukaan yang pernah tiba “giliran” untuk muncul — setiap balingan adalah bebas sepenuhnya daripada yang sebelumnya, dan dadu tidak tahu apa yang ia lakukan seminit yang lalu. Naluri yang mendakwa sebaliknya dipanggil gambler's fallacy (kesilapan penjudi), dan naluri yang sama inilah yang menyebabkan kita sangat teruk dalam mereka cipta hasil dadu dengan sendirinya: apabila diminta untuk menulis urutan balingan yang boleh dipercayai, kita mengelak daripada pengulangan, kita silih bergantikan nombor besar dan kecil dan kita menyebarkannya dengan lebih rata berbanding apa yang akan dilakukan oleh kerawakan sebenar. Kerawakan sebenar sebaliknya menghasilkan kelompok, corak berterusan yang panjang, dan selang masa yang lama. Urutan yang kelihatan tersusun mencurigakan adalah pada hakikatnya, cap jari manusia.
Kenapa pilih penjana dadu ini?
- Balingan pelayar sahaja: dadu dilempar pada peranti anda dan tidak dihantar ke mana-mana
- Kerawakan Web Crypto API: selamat secara kriptografi, tiada penggunaan Math.random()
- Tiada modulo bias: teknik rejection sampling mengekalkan peluang setiap permukaan sama rata dengan sempurna
- Mana-mana dadu yang diminta oleh permainan: 1 hingga 20 dadu sekali gus, dari d2 hinggalah d1000
- Jumlah dikira untuk anda: Σ menjumlahkan keseluruhan balingan, jadi 3d6 tidak perlu dikira secara mental
- Dadu 3D Animasi, atau matikan animasi untuk mendapatkan senarai nombor mudah dengan serta-merta
- Warna individu untuk setiap dadu, supaya beberapa dadu mudah dibezakan dengan sepintas lalu
- “Sejarah” dan “Simpan ke fail”: simpan log balingan yang mungkin anda perlu terangkan kemudian
- Tanpa had dan percuma: tiada pendaftaran, tiada had penggunaan, dan tiada data pada pelayan kami
Dadu muncul di mana-mana sahaja di mana permainan memerlukan nombor yang tidak dipilih oleh sesiapa. Pemain peranan (role-playing) tabletop menyerang dengan d20, membaling 3d6 untuk sifat watak dan d100 untuk semakan peratusan, dan kumpulan yang kehilangan separuh uncang dadu mereka masih boleh meneruskan permainan mereka. Permainan papan yang terbentang di atas meja makan atau meja kedai kopi diteruskan dengan cara yang sama selepas dadu hilang — hanya tetapkan “Permukaan” kepada 6 dan “Dadu” kepada 2, dan teruskan bermain. Kumpulan yang bermain dari jauh membaling pada skrin yang dikongsi supaya semua orang melihat permukaan mana yang jatuh apabila ia berhenti. Guru mengendalikan kelas kebarangkalian klasik: baling 2d6 sebanyak 60 kali, kira jumlahnya dan biarkan corak dilukis sendiri di papan hitam. Pereka permainan memeriksa sama ada sesuatu mekanik benar-benar memberikan hasil yang berbeza-beza seluas yang dirasakan, sebelum ia dicetak. Dan sejumlah besar balingan hanya memutuskan siapa yang bermain dahulu, siapa yang membelanja minuman atau rancangan mana antara dua yang menang — ini adalah keputusan yang ditinggalkan kepada nasib yang orang ramai telah selesaikan melalui dadu selama beribu-ribu tahun.
Alat ini mempunyai beberapa batasan telus yang patut diketahui. Hanya satu jenis dadu digunakan dalam satu balingan: nilai dalam ruangan “Permukaan” digunakan pada setiap dadu dalam balingan itu, jadi untuk d20 dan d6 bersama-sama, ia akan memerlukan dua balingan yang berasingan dan bukannya satu balingan. Tiada pengubah, tiada balingan kelebihan (advantage) atau keburukan (disadvantage), tiada dadu meletup (exploding dice) dan tiada kotak teks untuk menaip tatatanda dadu — anda mendapat permukaan jatuh dan jumlah keseluruhannya, dan apa-apa peraturan yang ditambah selepas itu adalah di bawah tanggungjawab anda sendiri. Σ mengira setiap dadu yang disertakan dalam balingan, dan butang “Salin Semua” serta “Simpan ke fail” menulis permukaan individu dan bukannya jumlah keseluruhan. Animasi sentiasa memaparkan kiub enam permukaan tanpa mengira bilangan permukaannya, kerana ia hanyalah hiasan semata-mata: pendaratan yang dipaparkan adalah hasil balingan yang telah dijana oleh enjin terlebih dahulu. Balingan berlaku secara setempat pada peranti anda, jadi apabila bermain secara jarak jauh, seorang membaling dan berkongsi skrinnya — alat ini menghasilkan balingan yang anda boleh terangkan sendiri, bukan sesuatu yang boleh disahkan oleh pihak ketiga. Dan sudah tentu, dadu yang adil secara kriptografi hanyalah dadu yang adil: ia tidak mempunyai sebarang kaitan dengan mana-mana loteri atau cabutan kasino dan ia tidak memberikan kelebihan kepada sesiapa pun. Dalam batasan-batasan ini, jaminan itu kukuh — setiap permukaan bagi sebarang dadu mempunyai kebarangkalian mendarat yang sama tepat, pada setiap balingan.