Skip to main content

الدرس 4: استخدام كتل [Forever]

التحقق من الشروط بشكل متكرر

كما لوحظ في الدرس السابق، فإن كتلة [If then] تتحقق من الشروط مرة واحدة فقط. من أجل التحقق من الشروط الواردة في كتل [If then] بشكل متكرر، هناك حاجة إلى كتلة C [Forever]. الكتلة [إلى الأبد] هي كتلة C من فئة التحكم التي تكرر السلوكيات الموجودة داخلها، إلى الأبد.

كتلة VEXcode VR للأبد فارغة.
  • تحميل مشروع Unit7Lesson3 من الدرس السابق.

    نفس مشروع كتل VEXcode VR من نهاية الدرس الأخير. يبدأ بكتلة عند البدء ثم هناك كتلة If Then مع معامل منطقي لكتلة استشعار اللون التي تقرأ "العين الأمامية تكتشف اللون الأخضر ؟" والانعطاف لليمين لكتلة 90 درجة داخل حاوية If. بعد ذلك، هناك نفس الشيء إذا تم اكتشاف كتلة وكتلة مكدسة ولكن تم تغييرها إلى الانعطاف يسارًا لمدة 90 درجة إذا تم اكتشاف اللون الأزرق. بعد ذلك، نفس الشيء إذا تم استخدام مكدس الكتلة وكتلة الانعطاف ولكن تم تغييره إلى إيقاف القيادة إذا تم اكتشاف اللون الأحمر. أخيرًا، نفس الشيء إذا تم استخدام مكدس الكتلة وكتلة الانعطاف ولكن تم تغييره إلى Drive Forward إذا لم يتم اكتشاف أي لون.
  • إعادة تسمية المشروع Unit7Lesson4.

    شريط أدوات VEXcode VR مع زر "اسم المشروع" المميز في مربع أحمر، على يسار زر Select Playground. تم تعيين اسم المشروع على الوحدة 7 الدرس 4.
  • اسحب كتلة [Forever] إلى مساحة العمل وأرفقها بأعلى كومة الكتل. لاحظ أن هذا سيشمل جميع الكتل الأربعة [إذا كان الأمر كذلك] داخل الكتلة [إلى الأبد].

    يحجب VEXcode VR المشروع من وقت سابق ولكن مع سهم يشير إلى إضافة كتلة Forever ملفوفة حول جميع عبارات if. تبدأ بكتلة When Started ثم هناك سلسلة من أربعة عبارات إذا كانت ملفوفة في كتلة Forever. الأول هو كتلة If Then مع معلمة منطقية لكتلة استشعار اللون التي تقرأ "العين الأمامية تكتشف اللون الأخضر ؟" والانعطاف لليمين لكتلة 90 درجة داخل حاوية If. بعد ذلك، هناك نفس الشيء إذا تم اكتشاف كتلة وكتلة مكدسة ولكن تم تغييرها إلى الانعطاف يسارًا لمدة 90 درجة إذا تم اكتشاف اللون الأزرق. بعد ذلك، نفس الشيء إذا تم استخدام مكدس الكتلة وكتلة الانعطاف ولكن تم تغييره إلى إيقاف القيادة إذا تم اكتشاف اللون الأحمر. أخيرًا، نفس الشيء إذا تم استخدام مكدس الكتلة وكتلة الانعطاف ولكن تم تغييره إلى Drive Forward إذا لم يتم اكتشاف أي لون.

    لمعلوماتك

    يمكن إضافة الكتل إلى بداية أو منتصف مكدس المشروع عن طريق تبطين الجزء العلوي من الكتلة، مع الوضع المطلوب في المكدس.

    تصور لكيفية سحب كتلة Forever إلى أعلى المكدس والتفافها تلقائيًا حول محتويات المكدس. مشروع VEXcode VR BLOCKS هو نفسه كما كان من قبل وهو موجود في حلقة إلى الأبد. عبارات if هي كما يلي: الأول هو كتلة if ثم مع معامل منطقي لكتلة استشعار اللون التي تقرأ "العين الأمامية تكتشف اللون الأخضر ؟" والانعطاف لليمين لكتلة 90 درجة داخل حاوية if. بعد ذلك، هناك نفس الشيء إذا تم اكتشاف كتلة وكتلة مكدسة ولكن تم تغييرها إلى الانعطاف يسارًا لمدة 90 درجة إذا تم اكتشاف اللون الأزرق. بعد ذلك، نفس الشيء إذا تم استخدام مكدس الكتلة وكتلة الانعطاف ولكن تم تغييره إلى إيقاف القيادة إذا تم اكتشاف اللون الأحمر. أخيرًا، نفس الشيء إذا تم استخدام مكدس الكتلة وكتلة الانعطاف ولكن تم تغييره إلى Drive Forward إذا لم يتم اكتشاف أي لون.

    يوضح هذا الفيديو أدناه كيفية إضافة [Forever block] حول الكتل الأربع [If then] في المشروع الحالي. لاحظ أن الجزء العلوي من كتلة [Forever] يصطف بعد [When started] مباشرة وكتلة [If then] الأولى. ثم يلتف المكوِّن [Forever] حول جميع المكوِّنات التالية في كومة المشروع.

  • الآن بعد إضافة كتلة [Forever] إلى المشروع بحيث يتم فحص جميع كتل [If then] باستمرار، افتح Disk Maze Playground وقم بتشغيل المشروع.
  • عند تشغيل هذا المشروع، سيتنقل روبوت الواقع الافتراضي في Disk Maze Playground من البداية إلى النهاية. بمجرد أن يكتشف روبوت الواقع الافتراضي اللون الأحمر، سيتوقف عن القيادة.

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

    رسم تخطيطي لتدفق المنطق في مشروع كتل VEXcode VR بدون كتلة FOREVER. تشير الأسهم إلى أن كل عبارة if يتم تشغيلها مرة واحدة فقط قبل انتهاء المشروع، مما يجعل مشروعنا أقل استجابة مما نود. يتحقق مشروعنا مما إذا كانت العين الأمامية تكتشف اللون الأخضر، وإذا كان الأمر كذلك، فإنها تنعطف يمينًا لمدة 90 درجة. بعد ذلك، إذا اكتشفت العين الأمامية اللون الأزرق، فإنها تتحول إلى اليسار لمدة 90 درجة. بعد ذلك، إذا اكتشفت العين الأمامية اللون الأحمر، فإنها تتوقف عن القيادة. أخيرًا، إذا لم تكتشف العين الأمامية شيئًا، فإنها تدفع للأمام.
  • الآن بعد إضافة كتلة [Forever]، سيتم التحقق من كل شرط من كتل [If then] C بشكل متكرر. أثناء سير المشروع، إذا كانت حالة الكتلة C [إذا كان ذلك] صحيحة، يتم تنفيذ الكتل الموجودة داخل الكتلة C [إذا كان ذلك]. إذا كانت حالة كتلة [If then] C خاطئة، يتم تخطي الكتل الموجودة داخل كتلة [If then] C، وسيستمر تدفق المشروع إلى الكتلة التالية في المكدس. وهذا يمكّن روبوت الواقع الافتراضي من أداء سلوكيات منفصلة مثل الدوران أو التوقف بمجرد اكتشاف لون معين.

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

    رسم تخطيطي لتدفق المنطق في مشروع كتل VEXcode VR مع كتلة Forever الخارجية المضمنة. يتم الآن تسمية كل سهم بما يقيسه أمر المنطق هذا، ويظهر السهم الأصفر تدفق المنطق المتكرر عبر كل كتلة في حلقة Forever باستمرار. من الواضح أن كل عبارة if يتم التحقق منها في كل حلقة من كتلة forever، بغض النظر عما إذا كانت النتيجة صحيحة أو خاطئة.

استخدام كتل المفاتيح 

هذه هي كتلة التبديل [إلى الأبد]. يؤدي أمر Switch Python لـ Forever إلى إنشاء حلقة while حيث يكون الشرط صحيحًا. الأوامر المتداخلة داخل الحلقة عندما تتكرر إلى الأبد، حيث أن الشرط صحيح دائمًا. 

إصدار كتلة مفتاح VEXcode VR من كتلة Forever. يقرأ رمز بايثون "بينما صحيح :"، وهو ما يعادل بايثون عبارة إلى الأبد.

الأسئلة

يرجى تحديد رابط أدناه للوصول إلى اختبار الدرس.

Google Doc / .docx / .pdf