سؤال 5: تدريب 5: أنشئ مقطعًا برمجيًا باستخدام عناصر البرمجة الجديدة (My Blocks) يوجه روبوت الواقع الافتراضي لينتقل في ملعب جدار المتاهة (Wall Maze) ليصل إلى الحرف C في هذا الملعب، ويبدأ من المربع الأخضر. لاحظ التالي: جدار المتاهة عبارة عن ملعب مربع مقسم إلى وحدات مربعة 8 × 8 كما هو موضح بالشبكة الصفراء ذات الخطوط المتقاطعة في الصورة أدناه، وطول جانب كل وحدة مربعة يساوي 250 مليمتر. أنشئ عناصر البرمجة الجديد الذي يحتوي على المقطع البرمجي اللازم لرسم مسارين متعرجين يسمحان لك بتحديد مسار الروبوت: (1) وحدة مربعة واحدة إلى الأمام - انعطف لليسار 90 درجة - وحدة مربعة واحدة إلى الأمام - انعطف لليمين 90 درجة. (2) وحدة مربعة واحدة إلى الأمام - انعطف لليمين 90 درجة - وحدة مربعة واحدة إلى الأمام - انعطف لليسار 90 درجة. (3) استخدام عناصر برمجة جديدة في المقطع البرمجي بما يتوافق مع لبنة تحرك (drive for) ولبنة انعطف (turn for) من فئة نظام الدفع (Drivetrain)، عند الضرورة.
الإجابة: إجابة (1): تحرك للأمام 250 مم انعطف لليسار 90 تحرك للأمام 250 مم انعطف لليمين 90. إجابة (2): تحرك للأمام 250 مم انعطف لليمين 90 تحرك للأمام 250 مم انعطف لليسار 90. إجابة (3): استخدام المسار المتعرج 1 مرة استخدام المسار المتعرج 2 مرة تحرك للأمام 500 مم تحرك لليسار 90 مم انعطف لليمين 90 مم تحرك للأمام 250 مم انعطف لليمين 90 مم تحرك للأمام 250 مم انعطف لليسار 90 مم تحرك للأمام 250 مم انعطف لليمين 90 مم تحرك للأمام 250 مم انعطف لليسار 90 مم تحرك للأمام 500 مم (وصل إلى C).
خطوات الحل:
- **الخطوة 1: جدول المعطيات والمطلوب** | العنصر | الوصف | |--------|-------| | **الملعب** | جدار المتاهة (Wall Maze) | | **الشكل** | مربع مقسم إلى وحدات | | **الأبعاد** | 8 × 8 وحدة مربعة | | **طول ضلع الوحدة** | 250 مليمتر (مم) | | **نقطة البداية** | المربع الأخضر | | **الهدف** | الوصول إلى الحرف C | | **المطلوب 1** | إنشاء عنصر برمجي جديد (My Block) للمسار المتعرج (1) | | **المطلوب 2** | إنشاء عنصر برمجي جديد (My Block) للمسار المتعرج (2) | | **المطلوب 3** | استخدام العناصر الجديدة في مقطع برمجي للوصول إلى C |
- **الخطوة 2: المبدأ المستخدم** بناء **عناصر برمجة جديدة (My Blocks)** لتجميع سلسلة من الأوامر (لبنات **تحرك** و **انعطف**) في كتلة واحدة قابلة لإعادة الاستخدام، مما يبسط البرنامج الرئيسي.
- **الخطوة 3: إنشاء عنصر My Block للمسار المتعرج (1)** 1. **تسمية الكتلة الجديدة:** مثلاً "المسار_المتعرج_1". 2. **تحديد معلمات الإدخال (إن وجدت):** لا حاجة لمعلمات هنا حيث أن الحركات ثابتة. 3. **تجميع سلسلة الأوامر داخل الكتلة الجديدة:** - `drive for` **250 مم** (تحرك للأمام مسافة ضلع وحدة واحدة). - `turn for` **-90 درجة** (انعطف لليسار 90 درجة). - `drive for` **250 مم** (تحرك للأمام مسافة ضلع وحدة أخرى). - `turn for` **90 درجة** (انعطف لليمين 90 درجة). > **ملاحظة:** قد تختلف تسمية لبنة الدوران (`turn for`) أو اتجاه الدوران (موجب/سالب) حسب نظام الإحداثيات في بيئة البرمجة، ولكن المنطق هو: **أمام - يسار - أمام - يمين**.
- **الخطوة 4: إنشاء عنصر My Block للمسار المتعرج (2)** 1. **تسمية الكتلة الجديدة:** مثلاً "المسار_المتعرج_2". 2. **تجميع سلسلة الأوامر داخل الكتلة الجديدة:** - `drive for` **250 مم** (تحرك للأمام مسافة ضلع وحدة واحدة). - `turn for` **90 درجة** (انعطف لليمين 90 درجة). - `drive for` **250 مم** (تحرك للأمام مسافة ضلع وحدة أخرى). - `turn for` **-90 درجة** (انعطف لليسار 90 درجة). > **المنطق هنا هو:** **أمام - يمين - أمام - يسار**.
- **الخطوة 5: بناء المقطع البرمجي الرئيسي للوصول إلى الحرف C** باستخدام العناصر الجديدة (`المسار_المتعرج_1` و `المسار_المتعرج_2`) واللبنات الأساسية، يتم بناء تسلسل الأوامر التالي: 1. استدعاء `المسار_المتعرج_1` (مرة واحدة). 2. استدعاء `المسار_المتعرج_2` (مرة واحدة). 3. `drive for` **500 مم** (تحرك للأمام مسافة وحدتين). 4. `turn for` **-90 درجة** (انعطف لليسار 90 درجة). 5. `drive for` **250 مم** (تحرك للأمام مسافة وحدة واحدة). 6. `turn for` **90 درجة** (انعطف لليمين 90 درجة). 7. `drive for` **250 مم** (تحرك للأمام مسافة وحدة واحدة). 8. `turn for` **-90 درجة** (انعطف لليسار 90 درجة). 9. `drive for` **250 مم** (تحرك للأمام مسافة وحدة واحدة). 10. `turn for` **90 درجة** (انعطف لليمين 90 درجة). 11. `drive for` **250 مم** (تحرك للأمام مسافة وحدة واحدة). 12. `turn for` **-90 درجة** (انعطف لليسار 90 درجة). 13. `drive for` **500 مم** (تحرك للأمام مسافة وحدتين). > **تفسير:** هذا التسلسل يمثل مساراً محدداً على شبكة 8x8 يبدأ من المربع الأخضر ويتنقل عبر الوحدات باستخدام الحركات الأساسية (أمام، يسار، يمين) والمسارات المتعرجة المُعرفة مسبقاً، لينتهي عند موقع الحرف **C**.
- **الخطوة 6: الإجابة النهائية** تم بنجاح تصميم **عنصرين برمجيين جديدين (My Blocks)**: 1. **المسار_المتعرج_1:** لتنفيذ نمط الحركة: **تقدم وحدة → دوران يسار → تقدم وحدة → دوران يمين**. 2. **المسار_المتعرج_2:** لتنفيذ نمط الحركة: **تقدم وحدة → دوران يمين → تقدم وحدة → دوران يسار**. ثم تم استخدام هذين العنصرين ضمن **مقطع برمجي رئيسي** يحتوي على سلسلة دقيقة من أوامر التحرك والدوران، مما يوجه الروبوت بدءاً من النقطة الخضراء ومروراً بمسار محدد على الشبكة حتى الوصول إلى الهدف النهائي وهو **الحرف C** في ملعب المتاهة.