الجزء 1. كلمات المرور
تستخدم لعبة Punch-Out لـ MES من NES نظام كلمة مرور يسمح للاعبين بمواصلة اللعبة من نقطة محددة. تتكون كل كلمة مرور من 10 أرقام ، والتي يمكن أن تكون لها قيمة من 0 إلى 9. يمكن أن تقبل اللعبة نوعين من كلمات المرور ، أسميهما كلمات المرور "العادية" و "الخاصة". كلمات المرور الخاصة عبارة عن مجموعات معينة مكونة من 10 أرقام ، والتي تتفاعل مدخلات اللعبة بطريقة فريدة من نوعها. تبدو قائمة كاملة بكلمات المرور الخاصة كما يلي:
- 075 541 6113 - إشارة مشغول 1
- 800 422 2602 - إشارة مشغول 2
- 206 882 2040 - إشارة مشغول 3
- 135 792 4680 - لعبة في دورة مخفية: "حلبة عالمية أخرى" (لكي يتم قبول كلمة المرور ، يجب أن تضغط باستمرار على الزر تحديد واضغط على A + B)
- 106 113 0120 - عرض العناوين (لكي يتم قبول كلمة المرور ، يجب أن تضغط باستمرار على الزر تحديد واضغط على A + B)
- 007 373 5963 - ينقل اللاعب إلى المعركة مع مايك تايسون
النوع الثاني من كلمات المرور التي تقبلها اللعبة هي كلمات المرور العادية. في كلمات المرور العادية ، يتم تشفير التقدم الذي أحرزه اللاعب في اللعبة. يتم تشفير بيانات اللعبة التالية بكلمة مرور عادية:
- عدد من يفوز الوظيفي
- عدد الخسائر المهنية
- فوز بالضربة القاضية
- الخصم القادم
تشفير كلمة المرور
على سبيل المثال ، لدراسة إنشاء كلمة المرور ، نستخدم لعبة ذات 24 فوزًا وخسارة واحدة و 19 ضربة قاضية ونبدأ في بطولة العالم بمباراة ضد Super Macho Man.
تبدأ عملية ترميز حالة اللعبة في كلمة مرور بجمع عدد عمليات الفوز والخسارة والقذف في المخزن المؤقت. تعرض اللعبة كل رقم في شكل
رمز عشري ثنائي مكون من 8 بتات لكل رقم ورقمان لكل قيمة. هذا هو ، لمدة 24 فوزًا ، تحتاج إلى بايت واحد بقيمة 2 بايت و الثانية بقيمة 4. يحدث نفس الشيء مع أزواج من البايتات للخسائر والضربة القاضية ، أي ، يتم الحصول على ما مجموعه 6 بايت من البيانات. في الرسم التوضيحي أدناه ، تتم الإشارة إلى هذه البايتات الست بقيم بالعاشري والثنائي.
الخطوة التالية هي إنشاء المجموع الاختباري لهذه البايتات 6. يتم حساب بايت المجموع الاختباري بإضافة 6 بايت منفصلة وطرح النتيجة من 255. في حالتنا ، 2 + 4 + 0 + 1 + 1 + 9 = 17 ، أي 255 - 17 = 238.
ثم نكتب بضع أجزاء من 6 بايت إلى مخزن مؤقت جديد. يمكن تفسير هذا المخزن المؤقت كقيمة وسيطة 28 بت واحد ، والتي سوف نملأها خطوة بخطوة. يتم تقسيم البتات من المخزن المؤقت الأول إلى مجموعات من اثنين ويتم نقلها إلى مواضع مختلفة ترميز ثابت من المخزن المؤقت الثاني. هذه هي الخطوة الأولى من عدة خطوات تتمثل مهمتها الوحيدة في إخفاء البيانات ببساطة لتعقيد عملية إنشاء كلمات مرور للاعبين.
لاحظ أنه لا يتم نقل كل البتات من المخزن المؤقت الأصلي إلى المخزن المؤقت الوسيط الجديد. يتم تجاهل هذه البتات ، لأنه من المعروف أنها دائمًا 0. وبفضل قواعد اللعبة ، يكفي نقل عدد الخسائر في كلمة المرور باستخدام فقط 2 بت من المعلومات. إذا وصل إجمالي الخسائر إلى 3 ، فستنتهي اللعبة ولا يتلقى اللاعب كلمة مرور. لذلك ، يكفي وصف عدد الخسائر بالأرقام 0 و 1 و 2 ، ولهذا فقط 2 بت كافية.
ثم نكتب أزواج أخرى من البتات إلى المخزن المؤقت الوسيطة. تؤخذ أزواج الأربعة الأولى من قيمة المجموع الاختباري المحسوبة مسبقًا. يتم أخذ زوج آخر من قيمة العدو. قيمة الخصم هي رقم يشير إلى الخصم الذي سيقاتل اللاعب بعد إدخال كلمة المرور. يمكن استخدام ثلاث قيم معادية للعدو:
0 - دون فلامنكو (المعركة الأولى للبطولة الكبرى)
1 - بيستون هوندا (أول معركة في بطولة العالم)
2 - سوبر ماتشو مان (المعركة الأخيرة في بطولة العالم)
نظرًا لأننا أردنا إنشاء كلمة مرور تواجهنا مع Super Macho Man ، فإننا نستخدم 2 كقيمة للخصم ، ثم تتم كتابة بتات المجموع الاختباري وقيم الخصم في البتات الوسيطة كما يلي:
والخطوة التالية هي إجراء العديد من التباينات الدورية للبت المتوسطة إلى اليسار. يعني التقليب الدوري إلى اليسار أن كل البتات يتم تحويلها إلى موضع واحد إلى اليسار ، والبت الذي كان في أقصى اليسار يتحرك ويصبح في أقصى اليمين. لحساب عدد التباديل إلى اليسار ، نأخذ مجموع قيمة الخصم وعدد الخسائر ، ونضيف 1 ونأخذ ما تبقى من القسمة على 3 هذه النتيجة. في حالتنا ، اتضح 2 + 1 + 1 = 4. ثم الباقي من 4/3 هو 1 ، لذلك نحن نحول البتات الوسيطة إلى اليسار مرة واحدة.
في هذه المرحلة ، يتم بالفعل خلط البتات الوسيطة بالفعل وقد حان الوقت للبدء في كسرها للحصول على الأرقام التي تشكل كلمة المرور. يجب أن تتكون كلمات المرور من 10 أرقام ، لذلك سنقوم بتقسيم 28 بت وسيطة إلى 10 أرقام منفصلة ، والتي سوف نطلق عليها قيم كلمة المرور P0 ، P1 ، P2 ، إلخ. تتلقى كل من قيم كلمة المرور التسعة الأولى 3 بتات من البيانات ، وآخرها يحصل على واحد فقط من وحدات البت المتوسطة. لإكمال قيمة كلمة المرور النهائية ، سنقوم أيضًا بتضمين وحدات بت تشير إلى عدد التباديل التي تم تنفيذها في الخطوة السابقة.
أخيرًا ، نضيف إلى كل كلمة مرور قيمة إزاحة فريدة مشفرة. سيكون الرقم النهائي لكلمة المرور هو الجزء المتبقي من هذا المبلغ من القسمة على 10. على سبيل المثال ، في الموضع السابع نستخدم الإزاحة 1 ، أي أننا نحصل على 5 + 1 = 6 ، والرقم الأخير هو الباقي من 6/10 ، وهو 6. في الموضع الرابع الذي نستخدمه الإزاحة 7 ، أي ، نحصل على 5 + 7 = 12 ، والرقم النهائي يساوي باقي 12/10 ، أي 2.
لذلك ، حصلنا على أرقام كلمات المرور الجاهزة التي يمكن التحقق منها في اللعبة.
كلمة السر فك التشفير
عملية فك تشفير كلمات المرور إلى عدد مرات الفوز / الخسائر / الضربة القاضية وقيمة الخصم هي عملية بسيطة في الترتيب العكسي لجميع الخطوات المذكورة أعلاه. سأترك الأمر كمهمة للقراء. ومع ذلك ، يوجد في اللعبة خطأان بارزان يحدثان عند فك تشفير كلمات المرور التي أدخلها اللاعب والتحقق منها.
يحدث الخطأ الأول في الخطوة الأولى من فك تشفير كلمة المرور ، أي عند طرح الإزاحات للعودة إلى قيم كلمة المرور. تحتوي قيم كلمة المرور الأولية على 3 بتات من البيانات ، أي أن قيمها قبل تطبيق الإزاحة يجب أن تكون في النطاق من 0 إلى 7. ومع ذلك ، يمكن للاعب إدخال كلمة مرور ، والتي بعد طرح الإزاحة ينتج عنها قيمة كلمة مرور من 8 أو 9 (القسمة على 10 مع الباقي). بدلاً من رفض كلمة المرور هذه فورًا ، لا تقوم اللعبة عن طريق الخطأ بالتحقق من هذه الحالة وتسمح لك بإضافة بت بيانات إضافية إلى قيمة كلمة المرور التي يمكنها تلويث مجموعة البتات الوسيطة بطريقة لم تعد كلمات المرور فريدة من نوعها. نظرًا لأنه يمكن تعيين بعض البتات الوسيطة إما مع الرقم المقابل لكلمة المرور ، أو مع جزء إضافي إضافي من قيمة كلمة المرور المجاورة ، فهناك العديد من كلمات المرور التي يمكن تحويلها إلى نفس مجموعة البتات الوسيطة. لهذا السبب يمكنك العثور على كلمات مرور مختلفة تعطي نفس النتيجة في اللعبة ، على الرغم من أنها كانت فريدة من نوعها.
الخطأ الثاني هو خطأ في المنطق الذي تستخدمه اللعبة للتحقق من البيانات بعد فك تشفير كلمة المرور. تحاول اللعبة تطبيق الشروط التالية:
- يتوافق المجموع الاختباري المخزن في كلمة المرور مع المجموع الاختباري الذي يجب الحصول عليه مع الأخذ في الاعتبار عدد عمليات الفوز / الخسارة / خروج المغلوب المخزنة في كلمة المرور
- قيمة الخسارة هي 0 ، 1 أو 2
- قيمة العدو هي 0 ، 1 أو 2
- عدد التباديل الدورية المخزنة في كلمة المرور هو الرقم الصحيح مع مراعاة قيمة الخسائر وقيمة الخصم المخزن في كلمة المرور
- جميع أرقام فوز / خسارة / خروج المغلوب المخزنة في كلمة المرور هي في حدود 0-9
- يفوز> = 3
- يفوز> = بالضربة القاضية
إذا لم يتم استيفاء أي من هذه الشروط ، فيجب أن ترفض اللعبة كلمة المرور. ومع ذلك ، يوجد خطأ في تطبيق الاختبار النهائي (أي عند التحقق من الأرقام المشفرة بواسطة BCD.) بدلاً من التحقق من النصر> = بالضربة القاضية ، تسمح اللعبة بالحالات التي يكون فيها العدد العلوي من الانتصارات هو 0 ، والعدد الأدنى من الانتصارات> = 3 ، ويكون الرقم الأعلى للعدد الضريبي أقل من الرقم الأدنى يفوز. على سبيل المثال ، سيتم قبول تسجيل برقم 3 انتصارات وخسائر وخسائر و 23 ضربة قاضية بواسطة اللعبة (والتي تثبت كلمة المرور 099 837 5823) ، على الرغم من أنه يجب رفضها (نظرًا لأنه من المستحيل الفوز بـ 23 معركة بالضربة القاضية إذا فازت في 3 معارك فقط).
الخاتمة
التفاصيل الخاصة بمخطط الترميز هذا فريدة بالنسبة لـ Punch-Out ، لكن الفكرة العامة المتمثلة في الحصول على أجزاء مهمة من حالة اللعبة ، وتحويلها مع إمكانية الاستعادة لتعتيم الحالة الأولية ، ثم استخدامها لإنشاء عدد معين من الشخصيات لإظهارها على اللاعب ككلمة مرور هي طريقة عالمية إلى حد ما. يمكنك استخدام عمليات الاختبارية بحيث يؤدي تغيير كلمة المرور غير المقصودة (على سبيل المثال ، إذا ارتكب لاعب خطأ) إلى رفضه في أغلب الأحيان ، بدلاً من إنشاء كلمة مرور أخرى مع حالة لعبة عشوائية.
الجزء 2. نظرة عامة على لكمة التدريجي
كل مقاتل في Pike-Out من مايك تايسون !!! يسيطر عليها واحد أو أكثر من البرامج النصية bytecode تفسيرها. تعمل شخصية اللاعب ، Little Mac ، على برنامج نصي بسيط يحتوي على منطق كل إجراء متاح للاعب (التهرب ، الكتل ، اللكمات ، إلخ.) يتم التحكم في شخصيات الخصم بواسطة ثلاثة مستويات من النصوص المستقلة التي تخلق سلوك الشخصية معًا.
النصي المباراة
يتم تنفيذ السيناريو العدو على أعلى مستوى خلال كل جولات 3 من المعركة ويتحكم في التغييرات الأكثر طموحا في سلوك الخصم. سأدعو هذا البرنامج النصي "سيناريو المباراة". تتمثل مهمته الرئيسية في اختيار السلوكيات التي سيقوم بها العدو استجابةً لأحداث مختلفة خلال المعركة. على سبيل المثال ، سيتم تشغيل سلوك معين فورًا بعد ارتفاع الخصم بعد ضربة قاضية ، أو عندما ينفد اللاعب من قلوبه ويصبح متعبًا. تتم كتابة هذه السلوكيات على الطاولة ويتم استدعاؤها بواسطة محرك اللعبة استجابة للأحداث المقابلة. يقوم برنامج المطابقة أيضًا بتعيين القيم الأولية لخيارات التكوين المتعلقة بتعقيد المعركة (على سبيل المثال ، مقدار الوقت الذي يبقى فيه الخصم ضعيفًا بعد الإضراب الفائت.) أخيرًا ، يبدأ البرنامج النصي للمطابقة في انتظار علامات زمنية معينة أثناء المعركة لإجراء تغييرات على القيم المحددة مسبقًا .
النصي السلوك
نص الخصم من المستوى الأدنى هو "نص سلوك". يتحمل هذا المستوى مسؤولية تسلسل بعض الحدود والهجمات التي يجب على الخصم القيام بها في إطار السلوك الحالي (المحدد بواسطة البرنامج النصي للتطابق.) تنفذ نصوص السلوك أوامر مثل "تطبيق المربعة اليمنى ، والإيقاف المؤقت لمدة 28 إطارًا ، وتطبيق الحروف العلوية اليمنى أو اليسرى ، وتكرار الكل إنها 5 مرات. " يحتوي البرنامج النصي أيضًا على أوامر للقراءة والكتابة إلى أي عنوان في الذاكرة من محرك اللعبة ، وبالتالي يمكن أن يكون السلوك ديناميكيًا للغاية.
سيناريو الرسوم المتحركة
أقل مستوى للخصم هو السيناريو "للرسوم المتحركة". تؤدي هذه البرامج النصية تفاصيل كل ضربة مفردة أو كتلة أو هجومًا خاصًا كجزء من السلوك (المعرَّف من قِبل البرنامج النصي للسلوك.) في هذا المستوى ، أوامر مثل "تعيين sprite 23 للإطار الحالي للرسوم المتحركة للعدو ، حركه لأسفل وإلى اليمين بمقدار بكسل واحد لكل إطار ثانٍ في بالنسبة للإطارات العشرة التالية ، قم بتغيير إطار الرسوم المتحركة إلى sprite 24 ، قم بتشغيل تأثير الصوت 7 ". بالإضافة إلى أوامر الرسوم المتحركة ، تقوم البرامج النصية للرسوم المتحركة أيضًا بإجراء تسلسل مختلف التغييرات في حالات اللعب المرتبطة ارتباطًا وثيقًا بحركات العدو. على سبيل المثال ، في الرسوم المتحركة الطويلة للهجوم الخاص ، يمكن لسيناريو الرسوم المتحركة إدراج أوامر تجعل العدو عرضة لضربات قاضية بضربة واحدة خلال فترة زمنية قصيرة جدًا. مثل البرامج النصية للسلوك ، يمكن لنصوص الرسوم المتحركة قراءة وكتابة عناوين الذاكرة العشوائية في محرك اللعبة من أجل تحقيق تأثيرات أكثر ديناميكية.
النصي ليتل ماك
يشبه النص الذي يتم تنفيذه بواسطة شخصية مشغل Little Mac نصوص الرسوم المتحركة للعدو. يغير الإطار الحالي للرسوم المتحركة المنعكسة وينقل المشغل حول الشاشة. مثل البرامج النصية للرسوم المتحركة ، ينفذ البرنامج النصي Little Mac تسلسلات لبعض أحداث اللعب ، على سبيل المثال ، في أي وقت معين يجب على Mac فيه ضرب العدو ، أو متى يجب تنفيذ كتلة أو تهرب. يتحكم نص Little Mac في إدخال اللاعب ، على غرار الطريقة التي تتحكم بها النصوص السلوكية في نصوص الرسوم المتحركة للعدو.
تتم معالجة كل من هذه النصوص الأربعة بواسطة مترجمها الخاص. على الرغم من أن العديد منهم لديهم نفس الوظيفة ، على سبيل المثال ، التحكم في التحكم الأساسي والوصول المباشر إلى الذاكرة ، فإن كل نظام يطبق نسخته الخاصة ، ولا يشارك الكود الشائع (أو مساحة شفرة التشغيل) مع أنظمة أخرى. يتيح ذلك لكل نوع من أنواع البرامج النصية أن يكون محددًا للغاية ويستخدم بفعالية مجموعة صغيرة من الأوامر المستهدفة. تشكل بيانات البرامج النصية حوالي 22٪ من البيانات غير الرسومية لخرطوشة اللعبة (رمز الآلة لمحرك اللعبة نفسه لا يستغرق سوى 17٪) ، لذلك كان من المهم جدًا أن يكون للمخطوطات مظهر مدمج.
الجزء 3. سيناريو مباراة لكمة التدريجي
يتحكم نص المباراة في سلوك الخصم على أعلى مستوى. العملية الرئيسية التي يقوم بها مرارًا وتكرارًا هي انتظار وقت معين من الجولة وإجراء تغييرات على بيانات تهيئة الخصم في تلك اللحظة. يُظهر الفيديو الجولة الأولى من المعركة الأولى ضد Bald Bull ، جنبًا إلى جنب مع برنامج نصي للمباراة يتحكم في سلوكه العام.
هناك ثلاث عمليات رئيسية يمكن أن يقوم بها البرنامج النصي للتطابق. الأول هو الانتظار حتى يصل توقيت الجولة إلى قيمة معينة. والثاني هو السؤال عما إذا كان السلوك الحالي للخصم قد تغير. يتم تسجيل السلوكيات في جدول تكوين المعركة في الذاكرة ، ثم يتم استدعاؤها في أوقات مختلفة بواسطة البرامج النصية للمباراة ومحرك اللعبة نفسه. يحتوي الجدول على قطعتي سلوك تستخدمهما البرامج النصية المتطابقة. أنا أسميهم السلوك "الأساسي" والسلوك "الخاص". السلوكيات الخاصة هي ، على سبيل المثال ، إضراب Bull Charge لأحد منافسي Bald Bull أو Honda Rush لمعارض Piston Honda ، والسلوكيات الرئيسية هي الضربات المعتادة التي يقدمها الخصم لبقية الوقت. يمكن تغيير البرامج النصية السلوكية المحددة المستخدمة في تطبيق هذه الأنواع من السلوكيات بواسطة النص البرمجي للمطابقة مباشرةً أثناء القتال ، بحيث يتمكن المقاتلون من البدء بسلوك رئيسي واحد والتحول لاحقًا إلى سلوك آخر (كما هو موضح في الفيديو ، يقوم Bald Bull بذلك عندما يصل مؤقت الوقت إلى 0 : 20.)
تتمثل ميزة تغيير السلوكيات التي تقوم بها البرامج النصية للمطابقة في أنه يمكن استبدالها بالتغييرات السلوكية التي يطلبها محرك اللعبة. يستخدم محرك اللعبة أربعة مقاطع سلوكية لطلب سلوكيات جديدة عندما يفقد جهاز Mac جميع قلوبه ويتعب ، وكذلك عندما يرتفع الخصم بعد ضربة قاضية. إذا استوفى نص المطابقة طلب تغيير السلوك ، ولكن حدث واحد من هذه الأحداث الأربعة لمحرك اللعبة قبل معالجة الطلب (لا يمكن معالجة الطلبات حتى يدخل الخصم في حالة الانتظار) ، ثم يقوم مشغل اللعبة بتعيين السلوك المرغوب ورفض طلب نص المطابقة. بعض المقاتلين ، مثل Bald Bull ، يطلبون سلوكًا خاصًا عدة مرات خلال فترة زمنية قصيرة. يبدو أن هذا ضروري فقط لتقليل احتمالية إسقاط أي من هذه الطلبات عن طريق الخطأ.
العملية الرئيسية الثالثة للبرنامج النصي هو تصحيح الذاكرة. تؤثر معظم تصحيحات الذاكرة على جدول تكوين المعركة ، حيث يتم تسجيل البرامج النصية للسلوك. بالإضافة إلى مجموعات من السلوكيات ، يحتوي الجدول على بيانات متعلقة بتعقيد المعركة. على سبيل المثال ، عندما يصل مؤقت الفيديو إلى 0:30 ، يغير Bald Bull إعدادات الأمان الخاصة به. هذا يؤدي إلى حقيقة أنه لم يعد بإمكان اللاعب خداعه بالضغط ، ثم توجيه ضربة للجسم. بالإضافة إلى ذلك ، تتمتع البرامج النصية للمطابقة بالقدرة على تصحيح عناوين الذاكرة العشوائية ، لكن هذه الوظيفة تستخدم مرة واحدة فقط - في بداية الجولة الثانية مع Mike Tyson ، بحيث يتلقى اللاعب نجمًا لأول مرة عندما يضربها ، وهو في وضع الاستعداد.
الجزء 4. سيناريو السلوك لكمة التدريجي
الآن نحن ننظر إلى البرامج النصية السلوك التي تشارك مباشرة في تنفيذ السلوكيات.
يعرض الفيديو تفسيراً لما قد يبدو عليه النص البرمجي لسلوك Piston Honda 1 في الفرق الإنجليزية.
أوامر الرسوم المتحركة
البرامج النصية السلوكية هي المسؤولة عن إطلاق الرسوم المتحركة بالتتابع بنفس الطريقة التي كانت بها البرامج النصية للمطابقة مسؤولة عن إطلاق الرسوم المتحركة. يقوم أمر
anim
بتشغيل رسوم متحركة معينة ،
anim_rnd
أمر
anim_rnd
بتنفيذ رسوم متحركة تم اختيارها عشوائيًا من قائمة من 8 خيارات. في الفيديو أعلاه ، في وقت التحديد العشوائي من قائمة الخيارات ، يتم تمييز الخيار المحدد باللون الأحمر. عندما يطبق Piston Honda أول اثنين من jabs ،
anim
استخدام
anim
لكل منهما. بعد ذلك ، يستخدم
anim_rnd
عشوائيًا من مجموعة تحتوي على 6 رسوم متحركة
anim_rnd
و 2 من الرسوم المتحركة الفارغة. نتيجة لذلك ، يتم ربط 75٪ من الوقت ، ولا يفعل شيئًا عند 25٪ من الوقت.
من وجهة نظر البرنامج النصي ، يتم تشغيل سلوك الرسوم المتحركة بشكل متزامن ، لأنه عندما لا يكون نظام الرسوم المتحركة في وضع الخمول ، يتوقف مترجم البرنامج النصي مؤقتًا.
أوامر مراقبة التنفيذ
هناك العديد من الأوامر التي تعدل تنفيذ البرنامج النصي للسلوك نفسه. يمكن أن
pause
أوامر التوقف مؤقتًا عن تنفيذ البرنامج النصي لعدد معين من الإطارات ، أو لعدد الإطارات المحددة عشوائيًا من قائمة من خيارين.
هناك العديد من الأوامر المتفرعة ، في ظل ظروف معينة ، يمكنك التبديل اختياريًا إلى أجزاء مختلفة من البرنامج النصي للسلوك. يحتوي
branch_rnd
على احتمال معين بحدوث فرع في كل مرة يتم تنفيذه. هناك حالة خاصة من التفرع الاحتمالي هي الأمر
branch_always
، الذي لديه احتمال 100٪ من التفرع.
يتم إنشاء آلية حلقة بسيطة في مترجم البرنامج النصي السلوك.
set_loop_count
الأمر
set_loop_count
القيمة الحالية لعداد الحلقة. في كل مرة يتم فيها
branch_while_loop
الأمر
branch_while_loop
فإنها تقلل من قيمة عداد الحلقة بواحد وتنفذ فقط عندما تكون قيمة العداد أكبر من الصفر.
يتحقق النوع الأخير من التفرع من محتويات الذاكرة لاتخاذ قرار حول التفرع. يستخدم Piston Honda هذا الأمر
branch_mem_test
للتحقق مما إذا كان نجاحه الأخير في سلوك معين قد نجح. إذا ضربت الضربة الهدف ، فستتفرع للضربة القادمة. إذا لم يكن النجاح ناجحًا ،
branch_while_loop
الأمر
branch_while_loop
لمواصلة الضرب فقط عندما تتراكم 5 مرات ناجحة.
أوامر السلوك
هناك أمران يمكن بهما أن تتحكم البرامج النصية في السلوك في نظام السلوك نفسه.
begin_behavior_main
استخدام الأمر
begin_behavior_main
لإنهاء السلوك القابل للتنفيذ الحالي وبدء السلوك الرئيسي. يختلف هذا عن التفرع في البرنامج النصي للسلوك ، لأنه يمكن تغيير جزء البرنامج النصي الذي يُعتبر السلوك "الرئيسي" الحالي أثناء المطابقة بواسطة البرنامج النصي للتطابق (انظر الجزء السابق من المقالة حول البرامج النصية للتطابق).
الأمر الآخر المتعلق
enable_behavior_change
هو
enable_behavior_change
. عند بدء تشغيل سلوك جديد ، يبدأ بحالة قفل ، عندما يتم حظر جميع الطلبات الإضافية لتغيير السلوك. باستخدام الأمر
enable_behavior_change
يشير البرنامج النصي إلى استعداده للسماح بسلوكيات أخرى. على سبيل المثال ، في سلوك Piston Honda الخاص ، لا
enable_behavior_change
تنفيذ الأمر
enable_behavior_change
أبدًا ، لذلك إذا كان نظام التشغيل Mac متعبًا خلال هذا الوقت ، فسيستمر السلوك الخاص. ومع ذلك ، فإن أحداث ضربة قاضية تتجاوز هذا النظام ، لذلك إذا كان السلوك الرئيسي لـ Piston Honda قد تم هدمه ، فسيتم تغيير السلوك في أي حال.