الدرس 4: استخدام الحلقات المتداخلة
في الدرس السابق، قمت بإنشاء مشروع لإرشاد روبوت الواقع الافتراضي للقيادة إلى جميع الأقراص الزرقاء الثلاثة في Disk Mover Playground والتقاطها ونقلها إلى الهدف الأزرق. في هذا الدرس، ستنشئ مشروعًا لالتقاط ونقل قرص واحد من كل لون إلى هدفه الملون المقابل في Disk Mover Playground باستخدام الحلقات المتداخلة!

مخرجات التعلم
- تحديد كيفية تداخل الحلقات.
- وصف تدفق المشروع من خلال الحلقات المتداخلة.
- اشرح سبب استخدام الحلقات المتداخلة في المشروع.
ما هي الحلقات المتداخلة ؟
في الوحدات والدروس السابقة في هذه الدورة، استخدمت حلقات من فئة التحكم مثل الحلقة لـ ، والحلقة بينما ، والحلقة اللانهائية بينما لتكرار السلوكيات. ويسمى وضع حلقة واحدة داخل حلقة أخرى "التعشيش". الحلقات المتداخلة مفيدة في المشاريع التي يكرر فيها روبوت الواقع الافتراضي نفس السلوكيات أكثر من مرة، مثل تحريك أقراص متعددة في الملعب. يمكن لحلقات التعشيش تنظيم المشروع وتكثيفه، لجعله أكثر سهولة في الفهم. يمكن أن يكون هذا مفيدًا لفهم سياق التعليمات البرمجية والغرض منها بشكل أفضل، بالإضافة إلى تسهيل تحديد الأخطاء واستكشاف أخطاء المشروع وإصلاحها.
على سبيل المثال، لنقل الأقراص الزرقاء الثلاثة إلى الهدف الأزرق، يمكن استخدام حلقة لـ لتكرار عملية جمع القرص عدة مرات. يضع المشروع الموضح هنا مشروع الدرس 3 لنقل القرص الأزرق الأول إلى الهدف الأزرق داخل حلقة لـ ، مع تعيين المعلمة على 3. لاحظ كيف تم وضع الأقسام الأربعة للمشروع السابق ضمن حلقة لـ.
def main ():
for repeat_count in range(3):
#1. محرك الأقراص إلى القرص الأول
في حين لاdown_eye.near_object (): drivetrain.drive
(إلى الأمام)
انتظر(5، مللي ثانية
)drivetrain.stop ()
# 2. التقط مغناطيس القرص.
قم بتنشيط (تعزيز)
رقم 3. القيادة إلى المرمى drivetrain.turn_to_heading
(180 درجة)
بينما front_distance.get_distance (MM) > 200: drivetrain.drive
(للأمام)
انتظر(5، مللي ثانية
)drivetrain.stop ()
# 4. إسقاط القرص في مغناطيس الهدف.
تنشيط(إسقاط)
drivetrain.drive_for(عكس، 100، مم) drivetrain.turn_to_heading
(0، درجة)
الانتظار(5، مللي ثانية)
عندما تقوم بـ "تضمين" الحلقات، تتحكم الحلقة الخارجية في عدد المرات التي يتم فيها تنفيذ الحلقة الداخلية. في هذا المشروع، الحلقة لـ هي الحلقة الخارجية، وسوف تكرر السلوكيات الموجودة في الحلقة ثلاث مرات.
الحلقات الداخلية هي تلك الحلقات الموجودة داخل الحلقة الخارجية. في هذا المثال، كل من
الحلقات بينما (للقيادة إلى القرص وإلى الهدف) هي "حلقات داخلية" يتم
تنفيذها في كل مرة يتحرك فيها المشروع عبر الحلقة لـ .
لمعلوماتك
تعد المسافة البادئة مهمة في مشاريع VEXcode VR Python. يمكنك استخدام خطوط المؤشر الرمادية في مساحة العمل كوسيلة مساعدة بصرية عند تداخل الحلقات، للتأكد من أن مشروعك يعمل على النحو المنشود. يشير كل سطر إلى بداية ونهاية الحلقة.

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

قم باختيار الزر التالي لمواصلة بقية هذا الدرس.