سؤال تدريب 4: في ملعب رسالة مشفرة (Encoded Message)، أنشئ مقطعًا برمجيًا يوجه روبوت الواقع الافتراضي إلى: - استشعار الرمز الثنائي للمصفوفة الأولى الذي يتكون من 8 أرقام وهي 0 أو 1، وإخراج الرقم الثنائي المكون من 8 أرقام في وحدة التحكم في الطباعة. - تجنب الاصطدام بجدار الملعب باستخدام مستشعر العين الأمامية.
الإجابة: س: تجنب الاصطدام بجدار الملعب استخدم مستشعر العين الأمامية أثناء الحركة. وجه الروبوت للصف الأول، واستخدم حلقة تكرار 8 مرات: أ- اقرأ لون الخانة: إذا كان أخضر أضف "1"، وإذا كان أزرق أضف "0". ب- انتقل للمحاذاة التالية. ج- بعد الحلقة اطبع المتغير. الرمز الناتج: 01010110
خطوات الحل:
- | المعطيات | المطلوب | |----------|----------| | - ملعب رسالة مشفرة (Encoded Message) | - إنشاء مقطع برمجي للروبوت | | - مصفوفة أولى تحتوي على 8 خانات (أرقام ثنائية: 0 أو 1) | - استشعار الرمز الثنائي للمصفوفة الأولى وإخراجه في وحدة التحكم | | - مستشعر العين الأمامية متاح | - تجنب الاصطدام بجدار الملعب أثناء الحركة |
- **المبدأ المستخدم:** برمجة الروبوت باستخدام **حلقات التكرار** و**الشروط** لقراءة البيانات وتجنب العقبات.
- 1. **تهيئة الروبوت:** - ضع الروبوت في نقطة البداية باتجاه الصف الأول من المصفوفة. - تأكد من تفعيل **مستشعر العين الأمامية** للكشف عن الجدار.
- 2. **تجنب الاصطدام بالجدار:** - أثناء تحريك الروبوت نحو الصف الأول، استخدم **شرطًا مستمرًا**: > إذا اكتشف مستشعر العين الأمامية عائقًا (الجدار)، توقف أو انعطف لتجنب الاصطدام.
- 3. **قراءة الرمز الثنائي:** - عند الوصول للصف الأول، أنشئ متغيرًا (مثل `binary_code`) لتخزين الرمز الناتج (سلسلة نصية فارغة في البداية). - استخدم **حلقة تكرار** 8 مرات (لعدد الخانات): - في كل تكرار: - اقرأ لون الخانة الحالية: - **إذا كان أخضر** → أضف الرقم "1" إلى `binary_code`. - **إذا كان أزرق** → أضف الرقم "0" إلى `binary_code`. - انتقل إلى الخانة التالية في الصف (باستخدام حركة محاذاة). - مثال للقراءة: | الخانة | اللون | الرمز المضاف | |--------|-------|--------------| | 1 | أزرق | 0 | | 2 | أخضر | 1 | | 3 | أزرق | 0 | | 4 | أخضر | 1 | | 5 | أزرق | 0 | | 6 | أخضر | 1 | | 7 | أخضر | 1 | | 8 | أزرق | 0 |
- 4. **إخراج النتيجة:** - بعد انتهاء الحلقة، استخدم أمر الطباعة (`print`) لعرض قيمة `binary_code` في وحدة التحكم. - في هذا المثال، سيطبع الروبوت: **01010110**.
- **الإجابة النهائية:** تم تصميم مقطع برمجي يوجه الروبوت لقراءة 8 خانات ثنائية (تمثلها الألوان الأخضر والأزرق) من الصف الأول مع تفعيل مستشعر العين الأمامية لتجنب الجدار، حيث ينتج الرمز الثنائي **01010110**.