Skip to main content

الدرس 3: استخدام عبارات if

التنقل عبر متاهة القرص باستخدام عبارات If 

في تحدي متاهة القرص، يتحقق روبوت الواقع الافتراضي من حالة مستشعر العين الأمامي لمعرفة اللون الذي يتم الإبلاغ عنه. يتوافق كل لون من الألوان مع سلوك مختلف يجب أن يؤديه روبوت الواقع الافتراضي.

لمعلوماتك

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

إذا كان الشرط: 
	ناجح

The if statement will run one time in a project. في هذا المثال، سيقوم مستشعر العين الأمامي بالإبلاغ عن True إذا تم اكتشاف كائن أخضر، وتنفيذ الأمر داخل عبارة if - انعطف يمينًا لمدة 90 درجة. إذا لم يتم اكتشاف كائن أخضر، سينتقل المشروع إلى الأمر التالي.

def main ():
    if front_eye.detect (GREEN): drivetrain.turn_for
        (RIGHT, 90, DEGREES
    )drivetrain.stop ()
  • ابدأ مشروعًا جديدًا وحدد Disk Maze Playground عند مطالبتك بذلك. لوحة اختيار ملعب متاهة القرص في VEXcode VR.
  • سمها الوحدة 7 الدرس 3.شريط الأدوات في VEXcode VR مع استدعاء مربع اسم المشروع. اسم المشروع هو الوحدة 7 الدرس 3.

     

  • أضف تعليقات لوصف نية سلوكيات روبوت الواقع الافتراضي خلال كل قسم من أقسام المشروع التالية. 
def main ():
    # إذا اكتشفت العين الأمامية اللون الأخضر ثم انعطف يمينًا

    # إذا اكتشفت العين الأمامية اللون الأزرق ثم انعطف يسارًا
  • اسحب أو اكتب عبارة if أسفل التعليق الأول.
def main ():
    # إذا اكتشفت العين الأمامية اللون الأخضر ثم انعطف يمينًا
    إذا كانت الحالة: 
    	تمرير

    # إذا اكتشفت العين الأمامية اللون الأزرق ثم انعطف يسارًا
  • اضبط شرط العبارة if على الأمر front_eye.detect ، واضبط المعلمة على 'GREEN'.
def main ():
    # إذا اكتشفت العين الأمامية اللون الأخضر ثم انعطف يمينًا
	إذا اكتشفت العين الأمامية (الأخضر): 
    	مرر
    	
    # إذا اكتشفت العين الأمامية اللون الأزرق ثم انعطف يسارًا
  • اسحب أو اكتب الأمر turn_for داخل العبارة if ، لاستبدال الأمر 'pass'. اضبط المعلمات على الانعطاف يمينًا 90 درجة. الآن، إذا اكتشف مستشعر العين الأمامي "أخضر"، فسوف يتحول روبوت الواقع الافتراضي إلى اليمين بمقدار 90 درجة.
def main ():
    # إذا اكتشفت العين الأمامية اللون الأخضر ثم انعطف يمينًا
	إذا اكتشفت العين الأمامية (الأخضر): 
    	drivetrain.turn_for(يمين، 90 درجة)
    	
    # إذا اكتشفت العين الأمامية اللون الأزرق ثم انعطف يسارًا
  • سنتبع نفس الخطوات لإضافة عبارات إضافية if لجميع الألوان الثلاثة في متاهة القرص (الأخضر والأزرق والأحمر). يرتبط كل لون بسلوك مختلف. يجب أن تتطابق الأوامر الموجودة داخل العبارات if مع السلوك المقصود. أضف الأوامر التالية إلى المشروع أسفل التعليق الثاني، بحيث إذا اكتشف مستشعر العين الأمامي اللون "الأزرق"، فسوف يتحول روبوت الواقع الافتراضي إلى اليسار بزاوية 90 درجة.
	# If front eye detects blue then turn left
	if front_eye.detect(BLUE): 
    	drivetrain.turn_for(LEFT, 90, DEGREES)
  • عندما يصل روبوت الواقع الافتراضي إلى نهاية المتاهة، سيكتشف مستشعر العين الأمامي اللون "الأحمر".

    صورة عن قرب لروبوت الواقع الافتراضي وهو يصل إلى القرص الأحمر في نهاية متاهة القرص، وتوقف أمامه.
  • لإيقاف روبوت الواقع الافتراضي، يجب إضافة عبارة أخرى إذا كان مع التعليمات حول ما يجب فعله إذا اكتشف مستشعر العين الأمامي "اللون الأحمر". أضف التعليق والأوامر التالية إلى المشروع بحيث يتوقف روبوت الواقع الافتراضي عن القيادة إذا اكتشف "أحمر". 
	# If front eye detect red then stop
	iffront_eye.detect (RED 
    	):     	drivetrain.stop ()

إذا لم يتم اكتشاف أي من الألوان

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

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

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

  • أضف التعليق والأوامر التالية إلى المشروع، بحيث إذا لم يكتشف مستشعر العين الأمامي أي لون، فسيقود روبوت الواقع الافتراضي إلى الأمام.
	# If front eye detects none then drive forward
	iffront_eye.detect (NONE): 
    	drivetrain.drive(FORWARD)
  • يحتوي روبوت الواقع الافتراضي الآن على تعليمات لكل لون يتم اكتشافه بواسطة مستشعر العين الأمامي.
    • إذا اكتشف مستشعر العين الأمامية "أخضر" – انعطف يمينًا 90 درجة
    • إذا اكتشف مستشعر العين الأمامية "أزرق" –  انعطف يسارًا 90 درجة
    • إذا اكتشف مستشعر العين الأمامية "أحمر" – توقف عن القيادة
    • إذا اكتشف مستشعر العين الأمامية "لا شيء" – تقدم للأمام
  • افتح نافذة الملعب إذا لم تكن مفتوحة بالفعل. تأكد من فتح Disk Maze Playground  ، ثم قم بتشغيل المشروع. يجب أن يبدو المشروع بأكمله كما يلي: 
def main():# If
    front eye detectings green then turn right
    if front_eye.detect (GREEN): drivetrain.turn_for
        (RIGHT, 90, DEGREES

    )# If front eye detectings blue then turn left
    if front_eye.detect (BLUE): drivetrain.turn_for
        (LEFT, 90, DEGREES

    )# If front eye detect red then stop
    if front_eye.detect (RED): 
        drivetrain.stop

    ()# If front eye detects none then drive forward
    if front_eye.detect(NONE): 
        drivetrain.drive(FORWARD)
  • هل يتصرف روبوت الواقع الافتراضي كما كنت تنوي ؟ لماذا أو لماذا لا ؟ في الصفحة التالية من الدرس، سنتعلم المزيد عن هذا المشروع.

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