📚 برمجة رسم الزهرتين
المفاهيم الأساسية
المقطع البرمجي الرئيسي: سلسلة أوامر برمجية تتحكم في حركة الروبوت وترتيب رسم زهرتين مختلفتي الحجم.
إجراء (Petal): مقطع برمجي معرّف مسبقاً لرسم بتلة واحدة، ويقبل معامل إدخال يحدد طول جانب البتلة.
معامل الإدخال (Petal side length): قيمة رقمية تُمرر للإجراء `Petal` لتحديد حجم البتلة المرسومة (مثل 100 أو 200).
خريطة المفاهيم
```markmap
البرمجة التركيبية
التنفيذ في فيكس كود في آر
عناصر برمجة جديدة (My Blocks)
#### استخدام العنصر الجديد "Petal"
##### الخطوات
###### 1. رؤية لبنة "تعريف Petal" في منطقة البرمجة
###### 2. تخزين العنصر الجديد "My Block Petal" في فئة "My blocks"
#### التعليقات
##### أداة لإضافة توضيحات
#### تعريف المقطع البرمجي للعنصر الجديد "Petal"
##### تحت لبنة "تعريف Petal"
###### المقطع البرمجي الذي ينشئ بتلة واحدة
####### اضبط القلم على اللون أحمر
####### اضبط القلم على العرض نحيف للغاية
####### نقل القلم أسفل
####### تكرار 3 مرات:
######## تحرك إلى الأمام 180 mm
######## انعطف يمين لمدة 30 درجة
####### انعطف يمين لمدة 90 درجة
####### تكرار 3 مرات:
######## تحرك إلى الأمام 180 mm
######## انعطف يمين لمدة 30 درجة
#### استخدام عنصر البرمجة الجديد لإنشاء المقاطع البرمجية
##### الهدف
###### إنشاء مقطع برمجي يتحرك فيه روبوت الواقع الافتراضي ويرسم البتلة
##### خطوات التنفيذ
###### 1. من فئة "عناصر برمجة جديدة (My blocks)"، اضغط على المقطع البرمجي "عنصر البرمجة الجديد Petal"
###### 2. أفلت المقطع بعد لبنة "عندما بدأت (when started)"
##### تشغيل المقطع
###### شغل المقطع البرمجي في "ملعب الفن قماش (Art Canvas)"
##### النتيجة
###### رسم شكل بتلة مكون من فصين متداخلين باللون الأحمر
#### تطوير العنصر الجديد "Petal"
##### المشكلة
###### حجم البتلة ثابت (طول الجانب = 180 ملم)
###### حجم الزهرة الناتجة ثابت
##### الحل
###### إضافة معامل إدخال رقمي (Input Parameter)
####### مكانه: في المقطع البرمجي لعنصر البرمجة الجديد "Petal"
####### الغرض: قبول قيم مختلفة لطول الجانب (side length)
####### الفائدة: إنشاء بتلات وزهور بأحجام مختلفة
##### خطوات إضافة المعامل
###### 1. تعديل عنصر البرمجة الجديد
####### اضغط على فئة "عناصر برمجة جديدة (My Blocks)".
####### اضغط زر الفأرة الأيمن على عنصر البرمجة الجديد "Petal".
####### اضغط على "تعديل (edit)".
###### 2. إضافة معامل الإدخال الرقمي
####### في نافذة التعديل، اضغط على "إضافة مدخلا رقم (add an input number)".
####### اضغط على الاسم الافتراضي "number" وغيرّه إلى "Petal side length".
####### اضغط على "موافق (OK)".
####### تطبيق المعاملات (Parameters)
######## عمل المعاملات كمتغيرات داخل عنصر البرمجة الجديد.
######## إنشاء وحدات برامج قابلة للتأقلم على أكثر من مشكلة.
######## مثال: عنصر برمجة جديد لإنشاء مربع يحتوي على معامل إدخال رقمي لطول الجانب.
######### قيم إدخال مختلفة (مثل 200، 300، 600) للمعامل تنتج مربعات بأحجام مختلفة.
######### يتم استخدام نفس التعليمة البرمجية مع تغيير قيمة المعامل.
#### عناصر البرمجة الجديدة مع المعاملات
##### إضافة وتخصيص المعاملات
###### يمكن إضافة معامل واحد أو أكثر.
###### يمكن تخصيصها لتحديد:
####### شكل أو حجم الرسم.
####### اتجاه حركة روبوت الواقع الافتراضي.
####### المسافة التي يقطعها.
##### معالجة حالات المشكلات
###### تضمين العنصر الجديد في المقطع البرمجي الرئيس عدة مرات.
###### تمييز قيم الإدخال المعطاة للمعاملات في كل مرة.
##### مثال تطبيقي
###### عنصر "Petal" مع معامل إدخال هو طول جوانب شكل البتلة.
####### الاستخدام: لإنشاء أحجام مختلفة من الزهور أو الأوراق أو الفراشات.
#### إنشاء مقطع برمجي للزهور
##### الهدف
###### إنشاء مقطع برمجي يتحرك فيه روبوت الواقع الافتراضي ويرسم زهرة باستخدام عنصر البرمجة الجديد `Petal`
##### خطوات التنفيذ
###### 1. من فئة التحكم (Control)، أضف لبنة تكرار (repeat) ووضعها بعد لبنة "عندما بدأت (when started)".
###### 2. اضبط عدد مرات التكرار على 12.
###### 3. من فئة "عناصر برمجة جديدة (My blocks)"، أضف عنصر البرمجة الجديد `Petal` وأسقطه داخل لبنة التكرار 12 مرة.
###### 4. من فئة نظام الدفع (Drivetrain)، أضف لبنة انعطف (turn) ووضعها بعد عنصر البرمجة الجديد `Petal`.
###### 5. اضبط الانعطاف إلى 120 درجة.
#### نظام الدفع
##### أوامر التحكم الأساسية
###### تحرك إلى الأمام
###### تحرك إلى الأمام عدد 200 mm
###### انعطف يمين
###### انعطف يمين لمدة 90 درجة
###### انعطف لمواجهة 90 درجة
###### انعطف للدوران 90 درجة
###### أوقف القيادة
###### اضبط سرعة القيادة إلى 50 %
###### اضبط سرعة الانعطاف إلى 50 %
##### رسم الزهرة الكاملة
###### المقطع البرمجي الرئيس
####### عندما بدأت
####### تكرار 12 مرة:
######## استدعاء عنصر `Petal`
######## انعطف يمين لمدة 120 درجة
###### النتيجة
####### رسم زهرة مكونة من 12 بتلة باللون الأحمر في ملعب الفن قماش.
#### نافذة إنشاء/تعديل الكتلة
##### واجهة المستخدم
###### عنوان النافذة: "جعل كتلة" / "Make a Block"
###### معاينة الكتلة
####### تظهر اسم الكتلة ومعاملات الإدخال.
####### مؤشر رقمي (مثل 2، 3) فوق معامل الإدخال.
###### أزرار إضافة المدخلات
####### إضافة مدخلا رقم (Add an input number)
####### منطقية (Boolean)
####### إضافة تسمية (Add a label)
###### أزرار التنفيذ
####### موافق (OK)
####### إلغاء (Cancel)
##### أفضل ممارسة لتسمية المعاملات
###### يمكن كتابة اسم آخر لمعامل الإدخال.
###### من الجيد إعطاء اسم يصف فائدته (مثل: "طول جانب البتلة").
#### تطبيق المعامل في المقطع البرمجي
##### يظهر المعامل "Petal side length" كبنة عرض متغير في لبنة تعريف عنصر البرمجة الجديد "Petal".
##### خطوات وضع معامل الإدخال في المقطع البرمجي
###### 1. اضغط على لبنة معامل عرض المعامل "Petal side length" في لبنة تعريف (define)، وأفلتها على الموضع الأول الذي يوجد فيه الرقم 180.
###### 2. اضغط على لبنة معامل عرض المعامل "Petal side length" في لبنة تعريف (define)، وأفلتها على الموضع الثاني الذي يوجد فيه الرقم 180.
##### معلومة
###### يمكن إنشاء أكثر من مدخل رقمي إلى عنصر البرمجة الجديد باتباع نفس العملية وحسب الحاجة.
#### إعطاء رقم إدخال إلى عنصر البرمجة الجديد
##### الغرض
###### ضبط طول جوانب البتلة المكونة لحجم الزهرة.
##### مثال
###### عند ضبط رقم الإدخال على 100، يرسم روبوت الواقع الافتراضي زهرة صغيرة.
##### خطوات التنفيذ
###### 1. إنشاء المقطع البرمجي التالي:
####### عندما بدأت
####### تكرار 12 مرة
###### 2. ضبط رقم الإدخال ليكون 100:
####### داخل التكرار، استخدام عنصر `Petal` بقيمة 100.
####### داخل التكرار، إضافة أمر "انعطف يمين 120 درجة".
#### شكل المقطع البرمجي في ملعب الفن قماش
##### المقطع البرمجي الرئيسي
###### عندما بدأت
###### تكرار 12 مرة
####### عنصر `Petal` بقيمة 100
####### انعطف يمين 120 درجة
##### تعريف عنصر `Petal`
###### معامل الإدخال: `Petal side length`
###### المقطع البرمجي داخل التعريف:
####### اضبط لون القلم على أحمر
####### اضبط عرض القلم على نحيف للغاية
####### أنزل القلم
####### تكرار 3 مرات:
######## تحرك إلى الأمام `Petal side length` mm
######## انعطف يمين 30 درجة
####### انعطف يمين 90 درجة
####### تكرار 3 مرات:
######## تحرك إلى الأمام `Petal side length` mm
######## انعطف يمين 30 درجة
##### النتيجة الرسومية
###### رسم زهرة مكونة من 12 بتلة باللون الأحمر في ملعب الفن قماش.
#### دمج زهرتين متداخلتين
##### المهمة
###### إنشاء المقطع البرمجي الرئيس بشكل صحيح لدمج بين زهرة صغيرة وزهرة كبيرة متداخلتين.
##### قيم الإدخال
###### الزهرة الصغيرة: رقم إدخال = 100
###### الزهرة الكبيرة: رقم إدخال = 270
##### هيكل المقطع البرمجي الرئيس
###### للزهرة الصغيرة (الإدخال 100):
####### عندما بدأت
####### تكرار 12 مرة:
######## عنصر `Petal` بقيمة 100
######## انعطف يمين 120 درجة
###### للزهرة الكبيرة (الإدخال 270):
####### تكرار 12 مرة:
######## عنصر `Petal` بقيمة 270
######## انعطف يمين 120 درجة
##### تعريف عنصر `Petal` (ثابت)
###### معامل الإدخال: `Petal side length`
###### المقطع البرمجي داخل التعريف:
####### اضبط القلم على اللون أحمر
####### اضبط القلم على العرض نحيف للغاية
####### نقل القلم أسفل
####### تكرار 3 مرات:
######## تحرك إلى الأمام `Petal side length` mm
######## انعطف يمين لمدة 30 درجة
####### انعطف يمين لمدة 90 درجة
####### تكرار 3 مرات:
######## تحرك إلى الأمام `Petal side length` mm
######## انعطف يمين لمدة 30 درجة
##### النتيجة النهائية
###### رسم زهرتين متداخلتين (صغيرة وكبيرة) تشكلان نمطاً هندسياً معقداً ومرتباً.
#### برمجة رسم زهرتين في مكانين مختلفين
##### المهمة
###### إنشاء زهرتين مختلفتي الحجم في مكانين مختلفين من ملعب الفن قماش.
##### قيم إدخال المعامل
###### الزهرة الأولى: `Petal side length` = 200
###### الزهرة الثانية: `Petal side length` = 100
##### المقطع البرمجي الرئيسي
###### عند بدء التشغيل:
####### انعطف يمين 90 درجة
####### تحرك للأمام 650 مم
####### (المقطع البرمجي للزهرة الصغيرة - الإدخال 100)
######## تكرار 12 مرة:
######### استدعاء `Petal` بقيمة 100
######### انعطف يمين 120 درجة
####### نقل القلم فوق
####### تحرك للخلف 1000 مم
####### (المقطع البرمجي للزهرة الكبيرة - الإدخال 200)
######## تكرار 12 مرة:
######### استدعاء `Petal` بقيمة 200
######### انعطف يمين 120 درجة
##### تعريف إجراء `Petal`
###### معامل الإدخال: `Petal side length`
###### الأوامر داخل الإجراء:
####### اضبط القلم على اللون أحمر
####### اضبط القلم على العرض نحيف للغاية
####### أنزل القلم
####### تكرار 3 مرات:
######## تحرك للأمام `Petal side length` مم
######## انعطف يمين 30 درجة
####### انعطف يمين 90 درجة
####### تكرار 3 مرات:
######## تحرك للأمام `Petal side length` مم
######## انعطف يمين 30 درجة
##### النتيجة
###### رسم زهرتين منفصلتين (كبيرة وصغيرة) في موقعين مختلفين على القماش، كل منهما مكونة من 12 بتلة.
```
نقاط مهمة
- يتم استخدام الإجراء `Petal` المعرّف مسبقاً مرتين في البرنامج الرئيسي، مرة بقيمة إدخال 100 ومرة بقيمة 200.
- يتحكم البرنامج الرئيسي في موقع كل زهرة عبر أوامر الحركة (انعطف، تحرك للأمام/للخلف) قبل وبعد كل حلقة رسم.
- رفع القلم (`نقل القلم فوق`) ضروري للانتقال بين مواقع الزهرتين دون رسم خطوط.
- الحلقة `تكرار 12` حول استدعاء `Petal` هي التي ترسم الزهرة الكاملة ذات الـ 12 بتلة.