Skip to main content

الدرس 2: عبارات أخرى

في هذا الدرس، ستنشئ مشروعًا حيث يقرع روبوت الواقع الافتراضي قلعتين على الأقل في ملعب Dynamic Castle Crasher. ستكون هناك حاجة إلى خوارزمية لحل التحدي باستخدام الحلقات وتعليقات المستشعر لأن تخطيط الملعب يتغير مع كل إعادة تعيين.

أمثلة على تخطيطات Dynamic Castle Crasher Playground:

ثلاث مناظر من أعلى إلى أسفل لملعب Dynamic Castle Crasher، يعرض كل منها ترتيبات عشوائية مختلفة للقلاع، مع وضع روبوت الواقع الافتراضي باستمرار في نقطة البداية السفلية.

مخرجات التعلم

  • حدد أن عبارة if else تقوم بتشغيل الأوامر داخل فرع "if" أو "else" بناءً على القيمة المنطقية المبلغ عنها.
  • حدد أن عبارة if else تستخدم عادة مع حلقة for أو حلقة لا نهائية أثناء التكرار من أجل التحقق من الحالة أكثر من مرة.
  • تحديد ووصف سبب استخدام عبارة if else مع الحلقات.
  • صف ما الذي قد يتسبب في تشغيل فرع "if" أو فرع "else" في مشروع مع عبارة if else.

لماذا تستخدم عبارة if else ؟

يختلف تحدي كسارة القلعة الديناميكية عن تحدي كسارة القلعة في الوحدة 2. استخدم تحدي الوحدة 2 تسلسلًا بسيطًا وأوامر مجموعة نقل الحركة لضرب القلاع في ملعب ثابت.

def main (): drivetrain.set_drive_velocity (
	100, PERCENT) drivetrain.set_turn_velocity 	(
	100, PERCENT) drivetrain.drive_for
	(FORWARD, 1550, MM) drivetrain.turn_for
	(RIGHT, 180, DEGREES) drivetrain.drive_for
	(FORWARD, 700, MM)
	drivetrain.turn_for(RIGHT, 90, DEGREES)

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

منظر من أعلى إلى أسفل لملعب Dynamic Castle Crasher يظهر أن بعض القلاع فقط قد تم إسقاطها. يوجد روبوت الواقع الافتراضي في أعلى يمين الملعب بعد حركته حول الملعب.

عبارة if else

عبارة if else هي عبارة تقبل الشروط المنطقية. عبارة if  else هي عبارة مشروطة تتحكم في تدفق المشروع. ستقوم العبارة if else بتنفيذ تسلسل معين من الأوامر if تم استيفاء الشرط، else (عندما يتم الشرط) يتم تنفيذ مجموعة أخرى من الأوامر  - وبالتالي "تفرع" تدفق المشروع. سيتم تنفيذ فرع واحد فقط في if else في المرة الواحدة.

if condition:
	pass
else:
	pass
  • إذا تم الإبلاغ عن الشرط على أنه صحيح، يتم تشغيل الأوامر داخل فرع "if".
  • إذا تم الإبلاغ عن الشرط على أنه خطأ، يتم تشغيل الأوامر داخل فرع "آخر".
  • بمجرد تشغيل جميع الأوامر داخل أحد الفروع، سينتقل المشروع إلى الأمر التالي خارج عبارة if else.

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

فرع "إذا" -

  • في هذا السيناريو، يتم استيفاء شرط "المطر "، وبالتالي سيتم تنفيذ فرع "إذا"، وستأخذ مظلة. على الجانب الأيسر يوجد مثال رمزي للقراءة إذا هطل المطر:، خذ مظلة. بعد عبارة if يقرأ آخر: خذ نظارات شمسية. وفوق الرمز سحابة مطرية مع قطرات مطر. على اليمين مظلة ملونة عليها قطرات. وفقًا للرمز، إذا كانت السماء تمطر، فسيأخذ الشخص مظلة ؛ وإلا، فسيأخذون نظارات شمسية.

الفرع "الآخر" -

  • في هذا السيناريو، لا يتم استيفاء شرط "المطر"، لذلك سيتم تنفيذ فرع "آخر"، وسوف تأخذ النظارات الشمسية. على الجانب الأيسر يوجد مثال رمزي للقراءة إذا هطل المطر:، خذ مظلة. بعد عبارة if يقرأ آخر: خذ نظارات شمسية. فوق الرمز توجد شمس ساطعة. على اليمين زوج من النظارات الشمسية الحمراء. وفقًا للرمز، إذا كانت السماء تمطر، فسيأخذ الشخص مظلة ؛ وإلا، فسيأخذون نظارات شمسية.

 

بيان إذا كان آخر ومشكلة كسارة القلعة الديناميكية

هناك خطوتان رئيسيتان لروبوت الواقع الافتراضي لضرب القلاع بنجاح في ملعب Dynamic Castle Crasher. في الأساس، يجب أن يكون روبوت الواقع الافتراضي قادرًا على تحديد موقع القلاع واكتشافها في الملعب، ثم القيادة لإسقاطها. فيما يتعلق بعبارة if else، يمكن تأطير ذلك على النحو التالي:

  1. إذا اكتشف روبوت الواقع الافتراضي قلعة، فقم بالقيادة للأمام نحوها لإسقاطها.منظر من أعلى إلى أسفل لملعب Dynamic Castle Crasher. يتم تمييز القلعة الموجودة في منتصف هذا الملعب بصندوق أحمر وسهم يشير إليها من موضع بداية روبوت الواقع الافتراضي، مما يشير إلى أن روبوت الواقع الافتراضي سيتحرك نحو القلعة.
  2. وإلا، (عندما لا يكتشف روبوت الواقع الافتراضي قلعة)، استدر وتحقق من وجود قلعة في موقع آخر في الملعب.منظر من أعلى إلى أسفل لملعب Dynamic Castle Crasher مع تمييز القلعة المركزية بصندوق أحمر. تظهر الأسهم حول روبوت الواقع الافتراضي دورانًا في حركة في اتجاه عقارب الساعة، مما يشير إلى أن الروبوت سوف يدور حتى يرى قلعة أخرى.

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

التخطيط لمشروع مع بيان If Else

  • ابدأ مشروعًا جديدًا وحدد Dynamic Castle Crasher Playground عند مطالبتك بذلك. الصورة المصغرة لملعب Dynamic Castle Crasher عند اختيار ملعب جديد في VEXcode VR.
  • اسم المشروع Unit9Lesson2.
    شريط أدوات VEXcode VR حيث يتم تمييز اسم المشروع باللون الأحمر. اسم المشروع هو الوحدة 9 الدرس 2.
  • أضف تعليقات إلى مساحة العمل تحدد نية المشروع، بناءً على الخطوات المحددة أعلاه. يشرح التعليق الأول حالة عبارة if else، ويشرح التعليقان التاليان إجراءات كل فرع من عبارة if else. تذكر أن تعليقات بايثون تبدأ برمز # (رطل). يجب أن يبدو مشروعك كما يلي:

    def main ():
    	# هل يكتشف مستشعر المسافة قلعة ؟
    	
    	# تحطم القلعة التي تم اكتشافها بواسطة مستشعر المسافة
    	
    	# استدر للعثور على قلعة باستخدام مستشعر المسافة
  • يمكن استخدام العبارة if else لتشغيل كل من الإجراءات الموضحة أعلاه. يعتمد كل إجراء على ما إذا كان الشرط المنطقي في عبارة if else يشير إلى صواب أو خطأ. أضف عبارة if else بعد التعليقات. يجب أن يبدو مشروعك الآن كما يلي:

    def main ():
    	# هل يكتشف مستشعر المسافة قلعة ؟
    	
    	# تحطم القلعة التي تم اكتشافها بواسطة مستشعر المسافة
    	
    	# استدر للعثور على قلعة باستخدام مستشعر المسافة
    	
    	إذا كانت الحالة:
    		تمرير
    	آخر:
    		تمرير
  • يمكن تعريف كل فرع من العبارة if else باستخدام التعليقات. إذا اكتشف مستشعر المسافة قلعة، فيجب على روبوت الواقع الافتراضي القيادة لضرب القلعة ؛ وإلا يجب أن يتحول للكشف عن القلعة. قم بتحريك فروع if و else للمشروع لمواءمتها مع التعليقات التي تصف الإجراءات المرتبطة بها. يجب أن يبدو مشروعك الآن كما يلي:

    def main ():
    	# هل يكتشف مستشعر المسافة قلعة ؟
    	
    	إذا كانت الحالة:
    		# تحطم القلعة المكتشفة بواسطة
    		ممر مستشعر المسافة
    		
    	آخر:
    		# استدر للعثور على قلعة باستخدام
    		ممر مستشعر المسافة

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