🪜 Permainan Tangga (Amidakuji)
Klik 'Gambar Tangga' dan alat ini akan menampilkan satu garis vertikal per pemain, lalu menyebar garis horizontal di sepanjang 12 baris tetap menggunakan Math.random(). Karena setiap garis hanya pernah menukar dua garis tetangga, dan tidak ada dua garis pada baris yang sama yang pernah bersentuhan, seluruh tangga secara matematis dijamin cocok dengan setiap pemain ke satu hasil yang tepat — tidak ada yang mendapatkan dua hasil, tidak peduli di mana garisnya jatuh. Tap nama setelahnya dan kanvas akan menggambar ulang tangga yang sama dengan rute pemain tersebut dinyalakan, sehingga Anda bisa melihat proses keputusan langkah demi langkah, bukan hanya diberi jawabannya saja.
Permainan Tangga menghasilkan lotere amidakuji (ghost-leg) secara acak di browser Anda, menggunakan Math.random() dari JavaScript untuk menempatkan garis dan API Kanvas HTML untuk menggambar serta menganimasikan jalur setiap pemain ke hasil yang berbeda.
Privat sejak awal. Alat ini berjalan sepenuhnya di browser Anda — tidak ada yang Anda masukkan diunggah atau disimpan, dan bisa dipakai offline.
Tentang
Klaim keadilan di sini bukanlah pemasaran — hal ini muncul secara langsung dari cara garis ditempatkan. Setiap dari 12 baris dibangun dengan berjalan melalui setiap pasangan garis tetangga dan menggulung Math.random() < 0,45 untuk garis, tetapi kode secara eksplisit melewatkan slot jika yang di sebelah kiri baru saja mendapatkan garis ("!(i > 0 && row[i-1])"). Perlindungan tunggal ini berarti tidak ada baris yang pernah berisi dua pertukaran tumpang tindih, sehingga setiap baris, secara sendiri, adalah himpunan bersih dari pertukaran yang tidak tumpang tindih — sebuah permutasi dari kolom. Menumpuk dua belas dari mereka satu sama lain hanyalah menyusun dua belas permutasi secara berurutan, dan komposisi permutasi selalu menjadi permutasi itu sendiri. Itulah sebabnya dua pemain yang jatuh pada hasil yang sama tidak hanya tidak mungkin terjadi di sini, tetapi secara struktural mustahil, terlepas dari bagaimana hasil acak muncul.
Jaminan tersebut tidak mencakup seberapa *merata* hasil menyebar ke semua pasangan yang mungkin. Tangga selalu menggunakan 12 baris yang sama, terlepas dari berapa banyak pemain yang Anda masukkan — sumber memiliki ini sebagai konstanta tetap, bukan sesuatu yang berkembang seiring jumlah pemain Anda. Untuk rentang pemain 3 hingga 10 yang alat ini dirancang untuk, 12 baris dengan probabilitas 45% independen memberikan cukup pertukaran untuk terasa seperti pengocokan yang autentik. Namun, jika Anda memasukkan 30 atau 50 nama, 12 baris sederhana tidak cukup untuk mencapai hampir semua pasangan yang mungkin dengan peluang yang setara — orang-orang lebih mungkin jatuh dekat dengan kolom di mana mereka mulai dibandingkan dengan pengocokan yang benar-benar merata. Jika Anda membutuhkan pengacakan acak yang adil untuk kelompok besar, alat pengacakan datar adalah alat matematis yang lebih baik daripada tangga yang dibatasi pada dua belas baris.
Juga penting untuk jujur tentang apa Math.random() itu dan bukan. Ini adalah generator pseudorandom bawaan browser — cepat, cukup baik untuk memutuskan siapa yang mencuci piring, dan bukan sesuatu yang biasanya bisa dipengaruhi oleh peserta dari luar halaman. Namun, ini tidak aman secara kriptografis: keadaan internalnya, secara prinsip, dapat diprediksi jika seseorang dapat mengamati cukup outputnya atau mengetahui algoritma mesinnya, itulah sebabnya undian uang nyata, lotere yang diizinkan, dan hal-hal dengan taruhan hukum menggunakan crypto.getRandomValues() atau RNG yang diaudit dan disertifikasi. Alat ini tidak mencapai salah satu dari keduanya, dan tidak perlu untuk membagi tugas atau memilih siapa yang membeli kopi — hanya jangan tempatkan uang hadiah nyata di baliknya.
Di sisi interaksi: "Gambar Tangga" menjalankan seluruh rutinitas penempatan garis ulang, sehingga setiap klik adalah pengundian independen tanpa ingatan dari yang terakhir. "Tampilkan Semua" melewati pengungkapan satu nama sekaligus dan mencetak semua pasangan pemain-ke-hasil pada tangga yang sama sekaligus. Tidak ada tombol simpan, unduh, atau bagikan bawaan dalam versi ini — tangga hanya ada sebagai piksel di elemen kanvas, dan memuat ulang halaman akan menghapusnya bersama dengan dua kotak teks, yang kembali ke nama dan hadiah contoh. Jika Anda ingin catatan hasil, satu-satunya cara adalah menggunakan alat tangkapan layar bawaan browser atau perangkat Anda sebelum Anda beralih ke halaman lain. Segala sesuatu yang lain tentang alat ini persis seperti yang diiklankan: alat ini berjalan sepenuhnya di sisi klien tanpa permintaan jaringan setelah halaman dimuat, sehingga tidak ada yang Anda ketik pernah diunggah, dan alat ini tetap berfungsi tanpa koneksi sama sekali.
Cara pakai
- Masukkan nama setiap pemain ke dalam kotak Pemain, satu nama per baris — nama contoh (Amy, Ben, Cara, Dan) hanya menunjukkan format dan dapat diganti sepenuhnya.
- Masukkan hasil yang sesuai ke dalam kotak Hasil, satu per baris — alat ini akan menolak untuk menggambar dan menampilkan kesalahan jika dua daftar tidak memiliki jumlah baris yang sama.
- Klik "Gambar Tangga" untuk menjalankan serangkaian panggilan Math.random() yang baru dan mengungkapkan himpunan garis baru di kanvas — setiap klik adalah pengundian independen.
- Klik atau tap chip nama pemain di atas tangga untuk menganimasikan jalur tunggal mereka dalam warna aksen dari atas ke bawah dan mengungkapkan hasil yang cocok di bawahnya.
- Klik "Tampilkan Semua" jika Anda ingin melewati pengungkapan satu per satu dan melihat semua pasangan pemain-ke-hasil dicetak sekaligus di tangga yang sama.
FAQ
- Apakah tangga menggunakan generator angka acak yang benar-benar acak dan tidak dapat diprediksi?
- Ia menggunakan Math.random() bawaan browser, bukan crypto.getRandomValues() yang aman secara kriptografis. Hal ini sepenuhnya aman untuk membagi tugas atau memutuskan siapa yang membeli kopi, tetapi Math.random() memiliki keadaan internal yang, secara prinsip, tidak tahan terhadap prediksi jika seseorang dapat mengamati cukup output sebelumnya. Jangan gunakan alat ini — atau tangga berbasis Math.random() apa pun — untuk menjalankan undian yang melibatkan uang nyata, hadiah dengan bobot hukum, atau situasi apa pun di mana peserta memiliki insentif untuk membalikkan pengundian.
- Apakah peta hasil benar-benar satu-ke-satu, atau bisa dua pemain mendapatkan hadiah yang sama?
- Satu-ke-satu dijamin oleh konstruksi, bukan keberuntungan. Setiap garis hanya menghubungkan dua garis tetangga, dan kode secara eksplisit menolak menempatkan dua garis tumpang tindih di baris yang sama. Hal ini membuat setiap baris tangga menjadi pengocokan kecil, tidak tumpang tindih, dan menumpuk dua belas pengocokan tersebut tidak pernah menunjuk dua garis awal ke garis akhir yang sama — penugasan adalah bijeksi matematis, terlepas dari bagaimana hasil acak muncul.
- Apakah tangga tetap adil setelah saya menambahkan banyak pemain?
- Ini adalah batas yang jujur: tangga selalu menggunakan 12 baris tetap, terlepas dari jumlah pemain. Dengan 3 hingga 10 pemain yang alat ini dirancang untuk, itu cukup banyak pertukaran untuk terasa seperti pengocokan yang adil. Namun, jika Anda memasukkan 30 atau 50 nama, 12 baris tidak bisa menghasilkan cukup pertukaran untuk menyebar hasil secara merata ke sebanyak mungkin pasangan — pemain cenderung jatuh lebih dekat ke posisi awal mereka daripada pengocokan yang benar-benar merata. Untuk kelompok besar, alat pengacakan datar adalah pilihan yang lebih baik daripada tangga yang dibatasi pada 12 baris.
- Apakah saya bisa menyimpan atau membagikan tangga saya yang selesai?
- Tidak melalui alat itu sendiri — tidak ada tombol simpan, unduh, atau bagikan bawaan dalam versi ini. Tangga hanya ada sebagai piksel yang digambar di elemen kanvas saat halaman terbuka. Jika Anda ingin bukti hasil (klasik 'tangkapan layar untuk menyelesaikan argumen'), gunakan fungsi tangkapan layar bawaan browser atau perangkat Anda sebelum Anda memuat ulang halaman — memuat ulang akan mengatur ulang kanvas dan kedua kotak teks kembali ke data contoh.
- Apakah alat ini mengunggah sesuatu, dan apakah ia berfungsi tanpa internet?
- Tidak ada unggah, dan ya, berfungsi tanpa koneksi. Penempatan garis, penggambaran kanvas, dan pelacakan jalur semua berjalan di dalam mesin JavaScript browser Anda tanpa permintaan jaringan apa pun, sehingga alat ini tetap berfungsi setelah halaman dimuat bahkan tanpa koneksi sama sekali, dan nama serta hasil yang Anda ketik tidak pernah meninggalkan perangkat Anda.
- Apakah alat ini mengunggah data saya?
- Tidak. Semuanya berjalan langsung di browser Anda, jadi data Anda tidak pernah meninggalkan perangkat — bahkan tetap bisa dipakai offline setelah halaman dimuat.