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

مخرجات التعلم
- حدد أن كتلة [If then else] هي كتلة C تقوم بتشغيل الكتل داخل فرع If أو Else بناءً على القيمة المنطقية المبلغ عنها.
- حدد أن كتلة [If else] تستخدم عادة مع كتلة [Repeat] أو [Forever] للتحقق من الحالة أكثر من مرة.
- حدد ووصف سبب استخدام كتلة [If then else] مع الحلقات.
- صف ما الذي قد يتسبب في تشغيل فرع [إذا كان الأمر كذلك] في مشروع.
كيفية استخدام حظر [If then else]
يختلف هذا التحدي عن تحدي Castle Crasher في الوحدة 2. استخدم تحدي الوحدة 2 تسلسلًا بسيطًا وأوامر مجموعة نقل الحركة لضرب المباني في ملعب ثابت.

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

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

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

-
بمجرد اكتمال الخطوتين 1 و 2، يمكن لروبوت الواقع الافتراضي العودة إلى الخطوة 1 واستخدام مستشعر المسافة للعثور على المبنى التالي لضربه.
-
ابدأ مشروعًا جديدًا في VEXcode VR واسم المشروع Unit9Lesson2.

-
أضف كتلتين [تعليق] إلى مساحة العمل واملأ الخطوات الموضحة أعلاه.

-
يمكن استخدام كتلة [إذا كان الأمر كذلك] لتحريك كل إجراء من الإجراءات الموضحة أعلاه. يعتمد كل إجراء على ما إذا كانت الحالة المنطقية في كتلة [إذا كان الأمر كذلك] تشير إلى صواب أو خطأ. أضف كتلة [If then else] أسفل كتل [Comment].

لمعلوماتك
الكتلة [إذا كان الأمر كذلك] هي كتلة C التي تقبل كتل المراسل المنطقية كإدخال. كتلة [إذا كان الأمر كذلك] هي عبارة مشروطة تتحكم في تدفق المشروع. ستقوم كتلة [إذا كان الأمر كذلك] بتنفيذ تسلسل معين من التعليمات إذا تم استيفاء الشرط، ومجموعة أخرى من التعليمات إذا لم يتم استيفاء الشرط، وبالتالي "تتفرع" تدفق المشروع. سيتم تنفيذ فرع واحد فقط في [If then else].

- إذا تم الإبلاغ عن الحالة على أنها صحيحة، يتم تشغيل الكتل الموجودة داخل فرع If Then.
- إذا تم الإبلاغ عن الحالة على أنها خاطئة، يتم تشغيل الكتل الموجودة داخل فرع ELSE.

بمجرد تشغيل جميع الكتل داخل أحد الفروع، سينتقل المشروع إلى الكتلة التالية خارج كتلة [If then else].
-
في هذا المشروع، يمكن استخدام مستشعر المسافة للكشف عن المباني في الملعب. أضف <Distance found object> كتلة إلى كتلة [If then else].

لمعلوماتك
<Distance found object> الكتلة عبارة عن كتلة مراسل منطقية تبلغ عما إذا كان مستشعر المسافة قد وجد كائنًا أمام روبوت الواقع الافتراضي. تشير هذه الكتلة إلى صحتها عندما يكون هناك جسم أو سطح ضمن 3000 ملليمتر (مم) من روبوت الواقع الافتراضي.

-
الآن يجب تحديد كل فرع من كتلة [إذا كان الأمر كذلك] باستخدام التعليقات التي تم إنشاؤها في بداية المشروع. عندما تكون تقارير <Distance found object> الكتلة صحيحة، يجب أن يقود روبوت الواقع الافتراضي نحو هذا المبنى لإسقاطه. انقل كتلة [التعليق] هذه إلى فرع "إذا كان بعد ذلك" من المشروع.

-
انقل كتلة [التعليق] الأخرى إلى فرع "آخر" من المشروع لمعرفة ما يجب أن يحدث إذا لم يكتشف روبوت الواقع الافتراضي مبنى.

-
أضف كتلة [Drive] إلى فرع "If Then" في كتلة [If then else].

-
عندما تبلغ <Distance found object> الكتلة عن خطأ، سيحتاج روبوت الواقع الافتراضي إلى الاستدارة والعثور على مبنى في الملعب. أضف كتلة [Turn] أسفل كتلة [Comment] في فرع "Else" من كتلة [If then else].

-
قبل اختبار المشروع، يجب إضافة كتلة أخرى. [إذا كان الأمر كذلك] ستتحقق الكتل من الحالة مرة واحدة فقط قبل الانتقال إلى الكتلة التالية في الكومة. في الوحدة 7، تمت إضافة كتلة [Forever] إلى المشروع لإرشاد روبوت الواقع الافتراضي للتحقق مرارًا وتكرارًا من حالة مستشعر العين السفلي. للتأكد من فحص حالة مستشعر المسافة بشكل متكرر، اسحب كتلة [Forever] إلى مساحة العمل حول كتلة [If then else].

-
افتح ملعب Dynamic Castle Crasher وقم بتشغيل المشروع.

-
بمجرد أن يطرق روبوت الواقع الافتراضي مبنيين على الأقل، أعد تحميل الملعب وقم بتشغيل المشروع على تخطيط آخر لملعب Dynamic Castle Crasher.

-
في كل جولة من المشروع، سوف يدور روبوت الواقع الافتراضي حتى يتم الكشف عن مبنى بواسطة مستشعر المسافة، ثم يتجه نحو ذلك المبنى لإسقاطه.

- أثناء تشغيل المشروع، قد يدفع روبوت الواقع الافتراضي قطعة بناء على طول الطريق إلى الحافة ويسقط من الملعب. وذلك لأن <Distance found object> الكتلة لا تزال تبلغ عن وجود كائن أمام روبوت الواقع الافتراضي. عندما تكون هذه الكتلة صحيحة، فإن روبوت الواقع الافتراضي يتحرك للأمام. مما يؤدي إلى سقوط روبوت الواقع الافتراضي من على الطاولة.
قم بتحديد زر التالي للمتابعة مع بقية هذا الدرس.