📚 مثال 8: الحركة بلغة بايثون
المفاهيم الأساسية
عرض الكود (Code Viewer): نافذة لعرض المقطع البرمجي للمشروع بلغة بايثون، لفهم طريقة ترجمة كل لبنة برمجية إلى نص برمجي.
خريطة المفاهيم
```markmap
الوحدة الخامسة: برمجة الروبوت
الأدوات
VEXcode VR
#### واجهة بيئة VEXcode VR
##### فئات اللبنات البرمجية
###### المتغيرات (Variables)
####### مراقبة قيم المتغير
######## الغرض
######## الخطوات
######## النتيجة
####### مراقبة متغير العداد (Counter)
######## الغرض
######## الخطوات
######## النتيجة
####### وحدة تحكم العرض (Print Console)
######## الغرض
######## مثال من الصفحة
######## زر المسح (CLEAR)
###### التكرارات (Loops)
####### أنواع التكرارات
####### تكرار (repeat) مرات
######## الغرض
######## مثال: العمليات الحسابية في تكرارات
####### تكرار حتى (repeat until)
######## الغرض
######## كيفية الاستخدام مع العداد (Counter)
######## مثال 5: العد
######## مثال 6: رسم مربع
######### الهدف
######### المتغيرات المستخدمة
######### منطق البرنامج
######## التمييز بناءً على العداد (Counter)
######### الغرض
######### كيفية التنفيذ
######### مثال 7: رسم شكل ثماني
##### عرض الكود (Code Viewer)
###### الغرض
- رؤية المقطع البرمجي للمشروع بلغة بايثون.
- فهم طريقة ترجمة كل لبنة إلى نص برمجي.
###### مكونات النافذة
- المقطع البرمجي الافتراضي الخاص ببايثون.
- الدالة الرئيسية للمقطع البرمجي.
- المتغير الافتراضي الذي تم تعيينه على 0.
- الصف البرمجي لتشغيل روبوت الواقع الافتراضي.
###### قواعد مهمة
- يجب الإعلان عن المتغير داخل الدالة باستخدام `global`.
###### مثال 8: الحركة
####### الهدف
- كتابة لبنتين أساسيتين لحركة روبوت الواقع الافتراضي بلغة بايثون.
####### منطق البرنامج
- التحرك للأمام لمسافة 200 مليمتر.
- الانعطاف 90 درجة يمينًا.
####### الكود المكافئ في بايثون
######## `def when_started1():`
######## `drivetrain.drive_for(FORWARD, 200, MM)`
######## `drivetrain.turn_for(RIGHT, 90, DEGREES)`
######## `vr_thread(when_started1)`
##### معاملات بايثون
###### الفرق عن اللبنات البرمجية
- في اللبنات: تغيير المعاملات عبر القوائم المنسدلة أو تغيير الأرقام.
- في بايثون: استخدام الفواصل للفصل بين المعاملات.
###### تركيب الأمر
- تفصيل العملية عن معاملاتها بعلامة النقطة (.).
- مثال: `drivetrain.drive_for(FORWARD, 200, MM)`
####### اسم العملية (Drivetrain)
####### المعاملات
######## الاتجاه (FORWARD)
######## المسافة (200)
######## الوحدة (MM)
###### مقارنة الأوامر واللبنات
####### drivetrain.drive_for(FORWARD, 200, MM) ↔ لبنة "تحرك إلى الأمام عدد 200 mm"
####### drivetrain.turn_for(RIGHT, 90, DEGREES) ↔ لبنة "انعطف يمين لمدة 90 درجة"
####### drivetrain.set_drive_velocity(50, PERCENT) ↔ لبنة "اضبط سرعة القيادة إلى 50 %"
####### for repeat_count in range(10): ↔ لبنة "تكرار 10"
####### wait(1, SECONDS) ↔ لبنة "الانتظار 1 ثانية"
```
نقاط مهمة
- قبل تجربة المثال، يجب حذف المتغير الافتراضي من فئة المتغيرات (Variables) لمسح المقطع البرمجي.
- يوضح المثال كيفية كتابة أوامر حركة الروبوت الأساسية (التقدم والانعطاف) بلغة بايثون في نافذة عارض الكود.
- الكود في بايثون يبدأ بتعريف دالة (`def when_started1():`) ثم أوامر الحركة، وينتهي باستدعاء الدالة لبدء التنفيذ (`vr_thread(when_started1)`).