رمي نرد ببذرة ثابتة
يُنتج محاكي النرد ذي البذرة التسلسل نفسه كلما بقي عدد أحجار النرد وعدد أوجهها والبذرة من دون تغيير. لذلك يمكنكم استخدامه في الاختبارات وإعادة المباريات والتمارين والسيناريوهات المشتركة التي تتطلب نتائج متطابقة للجميع. أدخلوا عدد أحجار النرد وعدد أوجه كل حجر ونص بذرة غير فارغ. تعرض الاستجابة نتيجة كل رمية بترتيبها، ثم تقدم المجموع الكلي.
شغّل الأداة مجانًا
اجعلوا رمية النرد قابلة للتكرار
صُممت أدوات النرد العادية لإعطاء نتائج مفاجئة، لكن قابلية التكرار تصبح ضرورية عندما يحتاج شخص آخر أو تشغيل لاحق إلى النتيجة نفسها تمامًا. يحوّل هذا المحاكي نص البذرة إلى قيمة بداية ثابتة، ثم يقدّم مولدًا حتميًا مرة لكل نتيجة مقبولة. إذا أرسلتم العدد نفسه من أحجار النرد وعدد الأوجه نفسه والبذرة نفسها، فستظل النتائج المرتبة والمجموع متطابقين. ويؤدي تغيير أي إدخال إلى إنشاء سيناريو مختلف. يمكن أن تكون البذرة اسم حالة اختبار أو معرّف مباراة أو عنوان درس أو أي نص غير فارغ يستطيع فريقكم حفظه ومشاركته. عاملوها بوصفها جزءًا من تعريف السيناريو لا معلومة سرية. تتضمن الاستجابة مصفوفة النتائج حتى تتمكنوا من فحص كل حجر بدل الاكتفاء بالمجموع. وهذا مفيد للقواعد التي تعتمد على تساوي الرميات أو أعلى حجر وأدناه أو النجاحات الفردية أو إعادة العرض لاحقًا. كما تتضمن الاستجابة المجموع، فلا تحتاج عمليات التحقق الشائعة إلى حساب إضافي.
اختاروا عدد الأحجار والأوجه بعناية
يحدد حقل عدد أحجار النرد عدد النتائج المستقلة التي تعيدها الخدمة، بينما يحدد حقل الأوجه المجال الشامل لكل نتيجة. فحجر النرد ذي 6 أوجه يعطي دائمًا عددًا صحيحًا من 1 إلى 6، والحجر ذي 20 وجهًا يعطي قيمة من 1 إلى 20. تقبل القدرة من 1 إلى 1,000 حجر، ومن 2 إلى 1,000,000 وجه لكل حجر. يُرفض الحجر الذي يقل عن وجهين لأنه لا يمثل اختيارًا عشوائيًا ذا معنى، كما تُرفض القيم الكسرية أو غير الرقمية بدل تقريبها من دون تنبيه. تربط الخوارزمية قيم 32 بت بالأوجه بواسطة أخذ العينات مع الرفض. يمنع ذلك انحياز باقي القسمة الصغير الذي يظهر عندما لا ينقسم مجال المولد بالتساوي على عدد الأوجه. تظل النتائج حتمية على الخادم وفي المتصفح لأن الخوارزمية لا تستخدم إلا عمليات صحيحة محددة. وهي لا تستعين بعشوائية النظام أو الساعة أو الإعدادات المحلية أو خدمة خارجية. لذلك تناسب الاختبارات والعروض القابلة للتكرار، لكنها لا تناسب التشفير أو المراهنات أو القرعات الحساسة أمنيًا.
احفظوا السيناريوهات الكاملة وأعيدوا تشغيلها
لإعادة سيناريو على نحو موثوق، احفظوا المدخلات الثلاثة معًا: عدد أحجار النرد وعدد الأوجه والبذرة. لا يكفي حفظ المجموع وحده عندما تحتاج قواعد اللعبة إلى النتائج الفردية لاحقًا، ولا تكفي البذرة وحدها إذا كان إعداد النرد قابلًا للتغيير. تستطيع حزمة الاختبارات اشتقاق بذرة من اسم الحالة، واستدعاء القدرة، والاحتفاظ بالنتائج دليلًا مقروءًا. ويمكن لمدير اللعبة نشر بذرة السيناريو قبل الجلسة ليتاح للمشاركين إعادة المواجهة من دون كشف النتائج مسبقًا. كما يستطيع المعلمون تزويد جميع الطلاب بالبيانات المحاكية نفسها مع الحفاظ على مظهر تجربة نرد طبيعية. يرتبط التسلسل بالخوارزمية الموثقة لهذه القدرة. ولأنها تبدأ في الحالة التجريبية، ينبغي للتطبيقات التي تحتاج إلى إعادة دائمة للأرشيف أن تحفظ النتائج المعادة أيضًا. تكلف الأتمتة عبر API مبلغ $0.002 لكل طلب، بينما ينفذ المتصفح الحساب النقي نفسه محليًا. عند مقارنة تشغيلين، قارنوا مصفوفة النتائج المرتبة إلى جانب المجموع، فقد تتساوى مجموعات تسلسلات مختلفة.
حالات الاستخدام
إنشاء اختبارات ألعاب مستقرة
استخدموا بذورًا مسماة في الاختبارات الآلية لتتلقى قواعد القتال أو الحركة أو النقاط تسلسلات قابلة للتكرار.
إعادة سيناريو لعبة طاولة
شاركوا إعداد النرد والبذرة كي يتمكن الجميع من توليد النتائج المرتبة والمجموع نفسيهما.
إعداد تمارين صفية
قدّموا للطلاب بيانات متسقة لتمارين الاحتمالات مع الحفاظ على نتائج تبدو طبيعية.
الأسئلة الشائعة
هل تنتج البذرة نفسها الرميات نفسها دائمًا؟
نعم، بشرط تطابق عدد أحجار النرد وعدد الأوجه ونص البذرة وخوارزمية القدرة.
ماذا يحدث إذا كان عدد الأوجه أقل من 2؟
يفشل الطلب بخطأ إدخال غير صالح، لأن حجر النرد يجب أن يملك وجهين ممكنين على الأقل.
هل يمكنني رؤية نتيجة كل حجر بدل المجموع فقط؟
نعم. تحتوي مصفوفة النتائج على كل رمية بترتيبها، ويحتوي حقل المجموع على حاصل جمعها.
هل تصلح هذه الأداة للتشفير أو المراهنات بأموال حقيقية؟
لا. صُمم المولد ليكون قابلًا للتكرار، وهو ليس مصدرًا عشوائيًا آمنًا من ناحية التشفير.
ما تكلفة طلب API؟
يكلف كل طلب API مبلغ $0.002. ويمكنكم أيضًا تشغيل الحساب النقي نفسه مجانًا في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/game/dice-roll-seeded \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dice":3,"sides":6,"seed":"campaign-round-7"}'const res = await fetch("https://api.kit.forhosting.com/game/dice-roll-seeded", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dice": 3,
"sides": 6,
"seed": "campaign-round-7"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/dice-roll-seeded",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dice": 3,
"sides": 6,
"seed": "campaign-round-7"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/dice-roll-seeded", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dice":3,"sides":6,"seed":"campaign-round-7"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dice":3,"sides":6,"seed":"campaign-round-7"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/dice-roll-seeded", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"dice": 3,
"sides": 6,
"seed": "campaign-round-7"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.dice_roll_seeded",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |