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

يتم استخدام A for loop لتكرار سلسلة من الأوامر لعدد محدد من المرات. تتكرر
حلقة لـ (المعروفة أيضًا بالتكرارات) على تسلسل الأوامر الموجودة بداخلها. في حلقة
Python لـ ، يتم استخدام المتغير 'value' لتتبع التكرار الحالي، وتستخدم الكلمة
الأساسية 'in' النطاق الدالة لتحديد عدد التكرارات. 
تعمل وظيفة النطاق على تحديد عدد المرات التي يجب أن تتكرر فيها الحلقة. لتكرار السلوكيات لعدد المرات المطلوب، اضبط معلمة النطاق على لوظيفة.
إن وظيفة النطاق تقوم بشكل أساسي بإنشاء قائمة مؤقتة تحدد ما يجب أن تتكرر خلاله الحلقة، حتى تكتمل. في حالة تكرار السلوكيات، مثل رسم الجوانب الأربعة للمربع، تستخدم وظيفة النطاق قائمة مؤقتة من (0، 1، 2، 3) لتمكين روبوت الواقع الافتراضي من تنفيذ هذه الأوامر أربع مرات. ستتغير حركة روبوت الواقع الافتراضي اعتمادًا على معلمة دالة النطاق، كما هو موضح هنا.
![]() |
![]() |
تم تنفيذ أوامر مجموعة نقل الحركة 0 مرة. |
![]() |
![]() |
تم تنفيذ أوامر مجموعة نقل الحركة مرة واحدة. |
![]() |
![]() |
تم تنفيذ أوامر مجموعة نقل الحركة مرتين. |
![]() |
![]() |
تم تنفيذ أوامر مجموعة نقل الحركة 3 مرات. |
![]() |
![]() |
تم تنفيذ أوامر مجموعة نقل الحركة 4 مرات، وأكملت جميع الجوانب الأربعة للمربع. |
|
|
![]() |
تم تنفيذ أوامر مجموعة نقل الحركة 5 مرات، وأكملت المربع، ثم تتبعت الجانب الأول مرة أخرى. |
لاحظ أن الشكل المرسوم للمربع لم يتغير عندما تغيرت دالة النطاق من أربعة إلى خمسة؛ ولكن الموضع النهائي لروبوت الواقع الافتراضي تغير. وعلى هذا النحو، فإن استخدام حلقة لـ مع النطاق الافتراضي ، من شأنه أن يؤدي إلى رسم نفس الشكل المربع، ولكن روبوت الواقع الافتراضي سيستمر في تكرار السلوكيات ست مرات إضافية.
سينتقل روبوت الواقع الافتراضي عبر الأوامر من رأس الحلقة إلى الأمر المسنن الأخير. يشير رأس الحلقة لـ إلى أن روبوت الواقع الافتراضي يجب أن يكرر الإجراءات داخل الحلقة العدد المحدد من المرات قبل الانتقال إلى الأمر التالي خارج حلقة for. تشير الأسطر المسننة إلى الأوامر الموجودة داخل حلقة لـ والتي يجب تكرارها.
لمعلوماتك
في VEXcode VR، يتم دائمًا إضافة الأمر wait مع الحلقة لـ . الغرض من الأمر wait هو التأكد من أن VEXcode VR يمكنه تشغيل المشروع بشكل صحيح كما هو مقصود، نظرًا لطبيعة منصة VEXcode VR المستندة إلى الويب. لا ينبغي أبدًا حذف الأمر wait عند استخدام حلقة لـ ، وإلا فقد لا يعمل مشروعك كما هو مقصود.

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

يوضح الفيديو أدناه ما يجب القيام به لإكمال التحدي المصغر. يبدأ الروبوت في منتصف الملعب ويرسم الجوانب الأربعة لمربع أزرق كبير.
- شاهد فيديو الحل وراجع كيف يجب أن يتحرك روبوت الواقع الافتراضي من أجل إكمال التحدي المصغر.
- قم بتعديل مشروع Unit3Lesson2 لمطابقة هذه الصورة، أو انسخ الرمز أدناه.
def main (): pen.move (
DOWN) pen.set_pen_color
(RED) drivetrain.drive_for
(FORWARD, 600, MM)
for value in range(3): drivetrain.drive_for
(FORWARD, 600, MM) drivetrain.turn_for
(RIGHT, 90, DEGREES)
wait (5, MSEC)
- ابدأ المشروع وحدد أين لا يكمل روبوت الواقع الافتراضي السلوكيات المتوقعة.
- تعديل المشروع وتشغيل المشروع مرة أخرى. معرفة ما إذا كان روبوت الواقع الافتراضي يكمل السلوكيات المتوقعة.
- إذا لم يرسم روبوت الواقع الافتراضي مربعًا أزرق، فكرر الخطوة السابقة وحاول مرة أخرى. استمر في تعديل وتشغيل مشروعك حتى يرسم روبوت الواقع الافتراضي مربعًا أزرق.
- بمجرد أن يرسم روبوت الواقع الافتراضي مربعًا أزرقًا على لوحة الرسم ساحة اللعببنجاح، احفظ المشروع.
تهانينا! لقد حللت التحدي الصغير!











