قم بتمرير مولد مصنف واحد عبر منشئ التخطيط
قم بإنشاء مولد عشوائي زائف وتمريره إلى كل دالة توليد بدلاً من استدعاء Math.random عبر المساعدين غير المرتبطين. تشير MDN إلى أن بذرة Math.random الأولية لا يمكن اختيارها أو إعادة تعيينها من قبل المستخدم، لذلك لا يمكنها بمفردها توفير بذرة قابلة لإعادة التشغيل. قم بتخزين البذرة بجانب المستوى الذي تم إنشاؤه أو تقرير الأخطاء الخاص به. إذا قمت بإضافة أو إعادة ترتيب عمليات السحب العشوائية لاحقًا، فقد تنتج نفس البذرة تخطيطًا مختلفًا؛ قم بإصدار المولد أو قم بتسجيل الخريطة التي تم إنشاؤها عندما تكون إعادة التشغيل على المدى الطويل مهمة.
قم بفصل الاختيارات حسب الغرض عندما يكون ذلك ممكنًا: تيار واحد لشكل الغرفة، وآخر للديكور، وآخر لوضع العدو. ثم لن يؤدي إضافة رسم زخرفي إلى تغيير نمط العدو تلقائيًا.
إنشاء، والتحقق من صحة، ثم تقديم
بعد بناء الغرفة، قم بإجراء فحوصات هيكلية قبل إظهارها: الدخول والخروج موجود، والمفاتيح المطلوبة مثبتة على البلاط القابل للمشي، ويمكن لخوارزمية البحث عن المسار الوصول إلى المخرج أثناء جمع العناصر الإلزامية. إذا فشل التخطيط، فأعد المحاولة باستخدام عدد محدود من البذور الجديدة، ثم استخدم غرفة احتياطية معروفة أو أظهر فشلًا واضحًا في الإنشاء. قم بتسجيل البذرة المرفوضة والثابتة الفاشلة حتى يمكن إعادة تشغيل التخطيط غير المتوقع محليًا.
اختبر مجموعة صغيرة من البذور المختارة عمدًا، بما في ذلك القيم الشبيهة بالحدود التي يقبلها محلل البذور، بالإضافة إلى عينة من البذور العادية. هذا ليس دليلاً على أن كل البذور المحتملة صالحة. إنها طريقة عملية لممارسة كل من الاستنساخ الحتمي ومسار رفض المولد.
أبقِ البذرة منفصلة عن مطالبات الصعوبة
الغرفة القابلة للتكرار ليست غرفة عادلة تلقائيًا. قم بتشغيل الأمثلة التي تم إنشاؤها واسأل ما إذا كانت المخاطر مرئية وما إذا كان المسار المقصود يترك وقتًا كافيًا للرد. احتفظ بهذه المراجعة منفصلة عن تحليل التوزيع في مراجعة العدالة. عندما يتم العثور على عيب، تتيح البذرة للفريق مناقشة تخطيط واحد محدد بدلاً من وصف ترتيب تقريبي من الذاكرة.
أسئلة عن المصنف جيل مستوى عشوائي
هل يمكنني إعادة إنتاج مستوى باستخدام Math.random ورقم محفوظ؟
ليس عن طريق إعادة تعيين الحالة المضمنة في Math.random؛ تقول MDN أنه لا يمكن اختيار بذرتها الأولية أو إعادة تعيينها. استخدم مولد أرقام عشوائية مهيأ ببذرة تتحكم فيها، واجعل جميع اختيارات التوليد تمر عبر هذا المولد.
هل تضمن البذرة أن كل مستوى تم إنشاؤه قابل للحل؟
كلا، فالبذرة تستنسخ تسلسل الاختيار؛ لا يتم التحقق من صحة الخريطة الناتجة. تحقق من إمكانية الوصول وقواعد الكائنات المطلوبة، ثم قم برفض التخطيطات الفاشلة أو إصلاحها.
للمزيد من القراءة
هل لاحظت معلومة قديمة؟ الإبلاغ عن تصحيح