Skip to main content

الدرس 4: نقل القرص الأحمر والأخضر

  • بعد ذلك، سيحتاج روبوت الواقع الافتراضي إلى المضي قدمًا نحو الهدف الملون التالي. لاحظ أنه سيتعين على روبوت الواقع الافتراضي دفع أربعة مربعات شبكية إلى الأمام، أو 800 ملليمتر (مم) من أجل القيادة إلى مركز الهدف الملون التالي.

    عرض من أعلى لأسفل لملعب Disk Mover، مع وضع روبوت الواقع الافتراضي على حافة الهدف الأزرق بعد إسقاط القرص الأزرق الأول، في مواجهة الهدف الأحمر إلى اليمين. يشير سهم منقط من مقدمة روبوت الواقع الافتراضي إلى الهدف الأحمر، مما يشير إلى الحركة المقصودة التالية.
  • أضف كتلة [Drive for] إلى التعليمة البرمجية واضبط المعلمة على 800 ملليمتر (مم).

    نفس مشروع VEXcode VR من الصفحة السابقة، مع إضافة تعليق و Drive for block إلى نهاية المكدس. تقرأ الكتلتان الإضافيتان القيادة إلى الهدف التالي، ثم القيادة للأمام لمسافة 800 مم.
  • سيحتاج روبوت الواقع الافتراضي الآن إلى الدوران لمواجهة الأقراص الملونة.

    منظر من أعلى إلى أسفل لملعب Disk Mover، مع وضع روبوت الواقع الافتراضي في منطقة مرمى حمراء. يشير سهم منحني من مقدمة روبوت الواقع الافتراضي إلى الأقراص الحمراء، مما يشير إلى الدوران اللازم لمواجهة الأقراص الحمراء.
  • أضف كتلة ثانية [Turn to heading] إلى التعليمة البرمجية واضبط المعلمة على صفر درجة. سيؤدي هذا إلى تحويل روبوت الواقع الافتراضي لمواجهة الأقراص الملونة.

    نفس مشروع VEXcode VR، مع إضافة كتلة التعليق وكتلة الانتقال إلى العنوان في نهاية المكدس. تقرأ هاتان الكتلتان "الانعطاف إلى الأقراص"، ثم "الانعطاف إلى العنوان 0 درجة".
  • افتح Disk Mover Playground وقم بتشغيل المشروع.
  • سوف يلتقط روبوت الواقع الافتراضي القرص الأزرق الأول وينقله إلى الهدف الأزرق، ثم يتخطى الهدف الأحمر. سيتحول روبوت الواقع الافتراضي أيضًا لمواجهة الأقراص الحمراء.

    منظر من أعلى إلى أسفل لملعب محرك الأقراص مع وضع الواقع الافتراضي على الحافة الأمامية للهدف الأحمر، مواجهًا للأقراص الحمراء.
  • الآن بعد أن واجه روبوت الواقع الافتراضي الأقراص الحمراء، سيحتاج روبوت الواقع الافتراضي إلى تكرار نفس السلوكيات التي تم استخدامها لجمع القرص الأزرق، من أجل التقاط القرص الأحمر وتحريكه. سلوكيات القيادة للأمام لالتقاط القرص والاستدارة والعودة إلى نفس الهدف الملون لإسقاط القرص.

    منظر من أعلى إلى أسفل لملعب محرك الأقراص مع وضع الواقع الافتراضي على الحافة الأمامية للهدف الأحمر، مواجهًا للأقراص الحمراء. تشير الأسهم المنقطة إلى الحركات اللازمة للقيادة لالتقاط القرص الأحمر الأول، وتسليمه إلى الهدف الأحمر، ثم الدوران والقيادة نحو الهدف الأخضر.
  • بمجرد نقل القرص الأحمر الأول، سيحتاج روبوت الواقع الافتراضي بعد ذلك إلى القيادة إلى الهدف الأخضر وتنفيذ نفس الإجراءات التي تم استخدامها لتحريك القرص الأزرق والأحمر، لتحريك القرص الأخضر الأول.

    منظر من أعلى إلى أسفل لملعب Disk Mover في تكوين البدء، مع وجود الروبوت في موقع بدء الهدف الأزرق. تُظهر الأسهم المنقطة السلوكيات المتكررة المقصودة للحصول على محرك روبوت لالتقاط وتسليم أول قرص من كل قرص إلى الأهداف المعنية.
  • لتكرار السلوكيات عدة مرات، يمكن استخدام كتلة [تكرار].

    كتلة تكرار VEXcode VR من صندوق الأدوات، مع ضبط المعلمة على القيمة الافتراضية 10.
  • أضف كتلة [Repeat] إلى التعليمة البرمجية واضبط المعلمة على "3".

    نظرة عامة على إضافة كتلة تكرار إلى مشروع VEXcode VR الحالي، بحيث يتم لف جميع الكتل اللازمة لالتقاط ونقل القرص الأزرق الأول إلى الهدف الأزرق، والتحول إلى القيادة إلى الهدف التالي ثم الالتفاف لمواجهة القرص داخل C من كتلة التكرار. تم ضبط معامل كتلة التكرار على 3.
  • افتح Disk Mover Playground وقم بتشغيل المشروع.
  • عند تشغيل هذا المشروع، يلتقط روبوت الواقع الافتراضي ويسقط قرصًا واحدًا من كل لون في هدفه الملون المقابل.

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

    تعرض نافذة الملعب روبوت الواقع الافتراضي داخل منطقة المرمى الخضراء في نهاية المشروع، مع تمييز زر الإيقاف بواسطة مربع أحمر يشير إلى إيقاف المشروع قبل أن يصطدم الروبوت بالحائط.

لمعلوماتك

وضع حلقة واحدة داخل حلقة أخرى يسمى التعشيش. عندما "تتداخل" الحلقات، تتحكم الحلقة الخارجية في عدد المرات التي تنفذ فيها الحلقة الداخلية. هناك العديد من الأنواع المختلفة من الحلقات التي يمكن تداخلها. على سبيل المثال، في التعليمة البرمجية السابقة أعلاه، يتم تداخل كتل [Repeat until] داخل كتلة [Repeat].

نفس مشروع VEXcode VR من قبل، والذي يوضح كيفية تداخل كتل Repeat حتى C داخل كتلة Repeat، مما يتيح للروبوت تحريك ثلاثة أقراص بنجاح.

يمكن أيضًا تداخل كتلة [تكرار] داخل كتلة [تكرار] أخرى. في المثال التالي، نظرًا لتعيين كتلة [Repeat] الخارجية على "3"، سيرسم روبوت الواقع الافتراضي ثلاثة مربعات على الملعب.

إلى اليسار، يعرض المشروع كتلة تكرار مضبوطة على 3، مع كتلة التكرار اللازمة لترميز روبوت الواقع الافتراضي لرسم مربع متداخل داخله، مما يوضح مفهوم الحلقات المتداخلة. إلى اليمين، تعرض نافذة الملعب المربعات الثلاثة التي رسمها الروبوت من المشروع.

الحلقات المتداخلة مفيدة في المشاريع التي يكرر فيها روبوت الواقع الافتراضي نفس السلوكيات أكثر من مرة. تقوم حلقات التعشيش بتنظيم وتكثيف المشروع. يمكن أن يكون هذا مفيدًا لفهم سياق التعليمات البرمجية والغرض منها بشكل أفضل، بالإضافة إلى تسهيل العثور على الأخطاء.

قم بتحديد زر التالي للمتابعة مع بقية هذا الدرس.