الدرس 3: تدفق المشروع مع حلقات متعددة أثناء التشغيل
الآن بعد أن قمت بإنشاء مشروع نصي لتوجيه روبوت الواقع الافتراضي إلى الحرف "A" على متاهة الحائط ساحة اللعب، سوف تقوم بتوسيع مهاراتك باستخدام الشرطيات وقيم المستشعر. في هذا الدرس، سوف تقوم بتوجيه روبوت الواقع الافتراضي إلى الرقم "2" في متاهة الحائط ساحة اللعب، ثم تستكشف سبب الحاجة إلى أوامر إضافية للوصول إلى الحرف "B". في التحدي المصغر، ستطبق هذه المهارات للتنقل من بداية متاهة الجدار إلى الرقم "3".

مخرجات التعلم
- صف تدفق البرنامج في مشروع يحتوي على محرك روبوت الواقع الافتراضي للأمام حتى يتم الضغط على مستشعر المصد.
إعادة تسمية المشروع
- إذا لم يتم تحميل مشروع الدرس السابق بالفعل، فقم بتحميل مشروع Unit4Lesson2.
-
إعادة تسمية المشروع Unit4Lesson3.
تدفق المشروع للقيادة إلى الحرف "أ"
في الدرس السابق، توجه روبوت الواقع الافتراضي إلى الحرف "A" في متاهة الحائط ساحة اللعب. دعونا نقسم تدفق المشروع بينما نستعد للانتقال إلى موقع جديد في متاهة الجدار.

-
لفهم تدفق المشروع بشكل أفضل للوصول إلى الحرف "A" في متاهة الحائط ساحة اللعب، ابدأ بتعديل مشروعك السابق أو إنشاء مشروع جديد لمطابقة هذا المشروع الأساسي.
def main (): while not left_bumper.press (): drivetrain.drive ( FORWARD ) wait( 5, MSEC) drivetrain.turn_for (LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive ( FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC ) drivetrain.stop ()
- عندما يستخدم مشروع حلقة بينما مع شرط وليس
، فإن تدفق برنامج المشروع لا يزال يتبع نفس التسلسل من أعلى إلى أسفل.
تسمح حلقة بينما لتدفق البرنامج "بالتوقف مؤقتًا" عند نقطة
معينة، بينما يتم استيفاء شرط ما.
يسمح غير المشغل
للمشروع بالبقاء في الحلقة حتى يتم الإبلاغ عن الحالة خاطئة. ثم سيتدفق المشروع إلى
الأمر التالي خارج الحلقة. ستبلغ الحالة المنطقية، مثل الضغط على المصد
الأيسر، عن قيمة صواب أو خطأ. في هذا الرمز لقيادة روبوت الواقع
الافتراضي إلى الحرف "A"، سيقود روبوت الواقع الافتراضي إلى الأمام حتى تصبح الحالة
المنطقية للمصد الأيسر التي يتم الضغط عليها صحيحة. سيبدو تدفق
المشروع للقيادة إلى الحرف "أ" كما يلي:
يوضح سلوك روبوت الواقع الافتراضي كيف يتم تنفيذ كل حلقة.
بعد تقسيمه جنبًا إلى جنب مع حركة روبوت الواقع الافتراضي، يمكننا أن نرى بوضوح إلى أين قاد
روبوت الواقع الافتراضي بعد كل حلقة في المشروع.
انطلق إلى الرقم "2"
في هذا الدرس، سيتم تحرير المشروع ليقود روبوت الواقع الافتراضي إلى الرقم "2" على متاهة الحائط ساحة اللعب!

-
يحتوي المشروع من الدرس 2 على روبوت الواقع الافتراضي يتجه يسارًا للقيادة إلى الحرف "أ". للانتقال إلى الرقم "2"، سيتعين على روبوت الواقع الافتراضي الانعطاف يمينًا بدلاً من ذلك، والقيادة للأمام، ثم الانعطاف يسارًا.
-
قم بتغيير اتجاه الأمر الثاني turn_for إلى اليمين بدلاً من اليسار. يجب أن يبدو مشروعك الآن كما يلي:
def main (): while not left_bumper.press (): drivetrain.drive ( FORWARD ) wait( 5, MSEC) drivetrain.turn_for (LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive ( FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC ) drivetrain.stop ()
- قم بتشغيل ملعب المتاهة الجدارية إذا لم يكن مفتوحًا بالفعل وقم بتشغيل المشروع.
-
شاهد روبوت الواقع الافتراضي يبدأ في القيادة إلى الرقم "2"، ولكن توقف عند الحائط. وبالتالي، يحتاج روبوت الواقع الافتراضي إلى الانعطاف يسارًا بمجرد الضغط على الحائط بدلاً من التوقف.
-
حدد الزر "إعادة الضبط" لإعادة ضبط الملعب وحرك روبوت الواقع الافتراضي مرة أخرى إلى وضع البداية.
-
قم بتعديل الكود عن طريق إزالة الأمر stop واستبداله بالأوامر التالية لتحريك روبوت الواقع الافتراضي إلى الرقم '2'.
def main (): while not left_bumper.pressed (): drivetrain.drive (للأمام ) انتظر( 5، MSEC) drivetrain.turn_for ( لليسار، 90، درجة) while not left_bumper.pressed (): drivetrain.drive ( للأمام) انتظر(5، MSEC) drivetrain.turn_for (لليمين، 90، درجة) while not left_bumper.pressed (): drivetrain.drive ( للأمام) انتظر(5، MSEC) drivetrain.turn_for (لليسار، 90، درجة) while not left_bumper.pressed (): drivetrain.drive (للأمام) انتظر(5، MSEC) drivetrain.turn_for (لليسار، 90، درجة) while not left_bumper.pressed (): drivetrain.drive (للأمام) انتظر(5، MSEC ) drivetrain.stop ()
- قم بتشغيل متاهة الجدار ملعب إذا لم تكن مفتوحة بالفعل وقم بتشغيل المشروع.
-
شاهد روبوت الواقع الافتراضي وهو يقود سيارته إلى الرقم "2" في متاهة الحائط ساحة اللعب!
- حدد الزر "إعادة الضبط" لإعادة ضبط الملعب وحرك روبوت الواقع الافتراضي مرة أخرى إلى وضع البداية.
قم باختيار الزر التالي لمواصلة بقية هذا الدرس.