🛝Toolio
حول اتصل بنا

🪜 لعبة السلالم (Amidakuji)

اضغط على رسم السلم، وستقوم الأداة برسم خط عمودي واحد لكل لاعب، ثم تنشر خطوطًا أفقية عبر 12 صفًا ثابتة باستخدام Math.random(). لأن كل خط أفقية تبادل فقط بين خطين متجاورين، ولا يسمح بأي خطين أفقية في نفس الصف بالاقتراب من بعضهما، فإن هذا السلالم يضمن رياضيًا أن كل لاعب يرتبط بنتيجة واحدة فقط — لا أحد يحصل على نتيجة مكررة، بغض النظر عن مكان تقع فيه الخطوط. بعد ذلك، اضغط على اسم لاعب وستعيد الأداة رسم نفس السلالم مع إبراز مسار اللاعب، بحيث يمكنك متابعة القرار خطوة بخطوة بدلًا من أن تُعطى النتيجة مباشرة.

يولد لعبة السلالم سلمًا عشوائيًا من نوع Amidakuji (ghost-leg) في متصفحك، باستخدام Math.random() من JavaScript لوضع الخطوط، وواجهة HTML Canvas لرسم وتحريك مسار كل لاعب إلى نتيجة مميزة.

اضغط على اسم لتعقب مساره.

مصمم للخصوصية. تعمل هذه الأداة بالكامل في متصفحك — لا يتم رفع أي شيء تدخله أو تخزينه، وتعمل الأداة دون اتصال بالإنترنت.

حول

الادعاء بالعدالة هنا ليس تسويقًا — بل ينبع مباشرة من طريقة وضع الخطوط. يتم بناء كل صف من 12 صفًا عن طريق التنقل عبر كل زوج من الخطوط المجاورة ورمي Math.random() < 0.45 لوضع خط، ولكن الكود يتجاوز الموضع إذا كان الموضع الموجود على اليسار قد حصل على خط بالفعل ("!(i > 0 && row[i-1])"). هذا الحارس الوحيد يعني أن لا صف يمكن أن يحتوي على تبادلين متقاطعين، وبالتالي فإن كل صف هو مجموعة نظيفة من التبادلين غير المتقاطعين — وهو تبديل لجميع الأعمدة. تراكم 12 صفًا فوق بعضها البعض هو مجرد تجميع 12 تبديلًا تلو الآخر، وجمع التباديل دائمًا هو تبديل. هذا هو السبب في أن احتمال أن يحصل اثنان من اللاعبين على نفس النتيجة ليس فقط منخفضًا، بل من المستحيل من الناحية الهيكلية، بغض النظر عن كيفية نتائج التمثيل العشوائي.

ما لا يغطي هذا الضمان هو مدى توزيع النتائج بشكل متساوٍ عبر جميع المجموعات المحتملة. دائمًا ما يستخدم السلالم نفس 12 صفًا بغض النظر عن عدد اللاعبين الذين تدخلهم — المصدر يحتوي على هذا كثابت ثابت، وليس شيئًا يتناسب مع عدد اللاعبين. بالنسبة لعدد اللاعبين من 3 إلى 10، فإن 12 صفًا من التمثيلات العشوائية بنسبة 45% تقدم كمية كافية من التبادلين لتبدو كمزيج عشوائي حقيقي. ولكن إذا قمت بوضع 30 أو 50 اسمًا، فإن 12 صفًا فقط لا يكفي لتغطية جميع المجموعات المحتملة بشكل متساوٍ — من المرجح أن ينتهي الناس بالقرب من العمود الذي بدأوا منه أكثر مما يمكن أن ينتج عنه مزيج عشوائي حقيقي. إذا كنت بحاجة إلى مطابقة عشوائية عادلة لعدد كبير من الأشخاص، فإن الأداة العشوائية المسطحة هي الأفضل رياضيًا مقارنة بالسلالم التي تصل إلى 12 صفًا فقط.

من المهم أيضًا أن نكون صريحين في ما هو Math.random() وما ليس كذلك. إنها مولد عشوائي داخلي للمتصفح — سريع، كافٍ لتحديد من سيقوم بالغسيل، وليس شيئًا يمكن للاعب تأثيره من خارج الصفحة عادةً. لكنها ليست آمنة من الناحية التشفيرية: يمكن توقع حالة داخليتها مبدئيًا إذا كان شخص ما يمكنه ملاحظة كمية كافية من إخراجها أو يعرف خوارزمية المحرك، وهذا هو السبب في أن السحوبات التي تتعلق بالمال الحقيقي، والقرطاسيات المرخصة، أو أي شيء له عواقب قانونية تستخدم crypto.getRandomValues() أو مولد عشوائي مدقق ومعتمد بدلاً من ذلك. لا تستخدم هذه الأداة — أو أي سلم يعتمد على Math.random() — لتشغيل سحب عشوائي يشمل أموالًا حقيقية أو مكافآت ذات قيمة قانونية، أو أي موقف يكون فيه لدى اللاعب دافع لعكس النتيجة.

من ناحية التفاعل: "رسم السلالم" يقوم بتشغيل روتين وضع الخطوط من جديد، لذا فإن كل نقرة هي سحب مستقل لا تتذكر النقرة السابقة. "كشف الجميع" يتجاوز عرض الاسم واحدًا تلو الآخر ويقوم بطباعة كل زوج من اللاعبين والنتائج على نفس السلالم مرة واحدة. لا توجد زر مدمج لحفظ أو تصدير أو مشاركة في هذا الإصدار — السلالم موجودة فقط كبكسلات على عنصر الـ canvas، وعند إعادة تحميل الصفحة تمسحها مع مربعات النصين، والتي تعود إلى الأسماء والجوائز النموذجية. إذا كنت بحاجة إلى سجل للنتائج، فإن الطريق الوحيد هو استخدام أداة التقاط الشاشة الخاصة بالمتصفح أو الجهاز قبل التنقل بعيدًا. كل شيء آخر عن الأداة هو تمامًا كما تم الإعلان عنه: تعمل الأداة بالكامل من جانب العميل دون أي طلبات شبكة بعد تحميل الصفحة، لذا فإن ما تكتبه أبدًا لا يتم رفعه، وتعمل الأداة دون اتصال بأي شيء.

كيف تستخدم

  1. اكتب اسم كل لاعب في مربع اللاعبين، اسمًا واحدًا لكل سطر — الأسماء النموذجية (أمي، بن، كارا، دان) تظهر فقط التنسيق ويمكن استبدالها تمامًا.
  2. اكتب النتائج المطابقة في مربع النتائج، واحدة لكل سطر — سترفض الأداة رسم السلالم وتظهر خطأ إذا لم يكن عدد الأسطر في القائمتين متطابقًا.
  3. اضغط على "رسم السلالم" لتشغيل دورة جديدة من Math.random() وعرض مجموعة جديدة من الخطوط على الـ canvas — كل نقرة هي سحب مستقل.
  4. اضغط أو انقر على أي رقعة اسم لاعب فوق السلالم لتشغيل مساره المفرد بلون الأكسنت من الأعلى إلى الأسفل وإظهار النتيجة المطابقة أسفله.
  5. اضغط على "كشف الجميع" إذا كنت تفضل تجاوز الكشف واحدًا تلو الآخر ورؤية كل زوج من اللاعبين والنتائج مطبوعة مرة واحدة على نفس السلالم.

الأسئلة الشائعة

هل يستخدم السلالم مولد أرقام عشوائية حقيقي وغير قابل للتنبؤ؟
يستخدم متصفحك Math.random() الداخلي، وليس المولد الآمن من الناحية التشفيرية crypto.getRandomValues(). هذا تمامًا مناسب لتقسيم المهام أو تحديد من سيشتري القهوة، ولكن يمكن أن تكون حالة Math.random() الداخلية، في المبدأ، غير مناعية للتنبؤ إذا كان شخص ما يمكنه ملاحظة كمية كافية من الإخراج السابق. لا تستخدم هذه الأداة — أو أي سلم يعتمد على Math.random() — لتشغيل سحب عشوائي يشمل أموالًا حقيقية أو مكافآت ذات قيمة قانونية، أو أي موقف يكون فيه لدى اللاعب دافع لعكس النتيجة.
هل تضمن خريطة النتائج أن كل لاعب يحصل على نتيجة واحدة فقط، أم يمكن للاعبين اثنين أن يحصلوا على نفس الجائزة؟
تُضمن العلاقة واحد لواحد من خلال البناء، وليس بالحظ. كل خط يربط فقط بين خطين متجاورين، والكود يرفض صراحة وضع خطين متقاطعين في نفس الصف. هذا يجعل كل صف من السلالم تبديلًا صغيرًا وغير متقاطعًا، وجمع 12 تبديلًا من هذا النوع لا يمكن أبدًا أن يشير إلى نفس النتيجة النهائية من خطين مبدئيين — التعيين هو تطابق رياضي بغض النظر عن مكان نتائج التمثيل العشوائي.
هل يظل السلالم عادلاً حتى إذا أضفت عددًا كبيرًا من اللاعبين؟
هذا هو الحد الأقصى الصادق: دائمًا ما يستخدم السلالم 12 صفًا ثابتة، بغض النظر عن عدد اللاعبين. مع 3 إلى 10 لاعبين، وهو عدد اللاعبين الذي تم تصميم الأداة له، فإن هذا كافٍ لجعل التبادلين يشعران وكأنهما مزيج عشوائي عادل. ولكن إذا أدخلت 30 أو 50 اسمًا، فإن 12 صفًا لا يمكن أن ينتج كمية كافية من التبادلين لتفريق النتائج بشكل متساوٍ عبر تلك المجموعة الكبيرة من المجموعات المحتملة — يميل اللاعبون إلى البقاء أقرب إلى مواقعهم الأصلية أكثر مما يمكن أن ينتج عنه مزيج عشوائي حقيقي. لعدد كبير من اللاعبين، فإن الأداة العشوائية المسطحة هي الخيار الأفضل مقارنة بالسلالم التي تصل إلى 12 صفًا فقط.
هل يمكنني حفظ أو مشاركة سلمي النهائي؟
لا من خلال الأداة نفسها — لا يوجد زر حفظ أو تنزيل أو مشاركة مدمج في هذا الإصدار. يُوجد السلالم فقط كبكسلات مرسومة على عنصر الـ canvas أثناء فتح الصفحة. إذا كنت بحاجة إلى إثبات النتيجة (الشائعة "التقاط شاشة لحل النزاع")، استخدم أداة التقاط الشاشة الخاصة بمتصفحك أو جهازك قبل إعادة تحميل الصفحة — إعادة تحميل الصفحة تعيد تعيين الـ canvas وتعيد مربعات النصين إلى البيانات النموذجية.
هل تقوم هذه الأداة بتحميل أي شيء، وهل تعمل دون اتصال بالإنترنت؟
لا توجد عمليات تحميل، نعم تعمل دون اتصال. وضع الخطوط، رسم الـ canvas، وتعقب المسارات جميعها تتم داخل محرك JavaScript في متصفحك دون أي طلبات شبكة، لذا تظل الأداة تعمل بعد تحميل الصفحة حتى بدون اتصال، واسمك ونتائجك التي تكتبها لا تغادر جهازك أبدًا.
هل هذه الأداة ترفع بياناتي؟
لا. يعمل كل شيء مباشرة في متصفحك، لذا بياناتك لن تغادر جهازك أبداً — بل إنها تعمل دون اتصال بالإنترنت بمجرد تحميل الصفحة.