ترسل هذه اللبنة رسالة الى مقاطع برمجية اخرى وتوقف مقطعها البرمجس مؤقتا حتى تكتمل تلك الخاصة بلبنة عندما اتلقى

ترسل هذه اللبنة رسالة الى مقاطع برمجية اخرى وتوقف مقطعها البرمجس مؤقتا حتى تكتمل تلك الخاصة بلبنة عندما اتلقى

في بيئات البرمجة مثل سكراتش، تستخدم لبنات التحكم والتفاعل بين الكائنات لإدارة سلوكها وتنظيم العمليات. من أهم هذه اللبنات لبنة “أرسل … وعندما أتلقى”، والتي تسمح للكائنات بإرسال رسائل إلى كائنات أخرى، والتحكم في توقيت تنفيذ التعليمات.

ترسل هذه اللبنة رسالة الى مقاطع برمجية اخرى وتوقف مقطعها البرمجس مؤقتا حتى تكتمل تلك الخاصة بلبنة عندما اتلقى

وظيفة اللبنة
اللبنة “أرسل … وعندما أتلقى” تقوم بوظيفتين أساسيتين:

إرسال رسالة:
الكائن الذي يحتوي على اللبنة يقوم بإرسال رسالة محددة إلى كائنات أخرى في البرنامج. هذه الرسالة يمكن أن تكون أي اسم يحدده المبرمج، مثل: “ابدأ الحركة” أو “قم بالتصويب”.
إيقاف التنفيذ مؤقتًا:
عند استخدام هذه اللبنة، يتوقف مقطع الكود الحالي للكائن المرسل مؤقتًا حتى تكمل الكائنات الأخرى التي تستجيب لهذه الرسالة تنفيذ تعليماتها المرتبطة بها. هذا يتيح تنسيقًا سلسًا بين عدة كائنات دون حدوث تضارب في الأوامر.
كيفية عمل اللبنة
عند تنفيذ الكود الذي يحتوي على:

أرسل “رسالة معينة” وانتظر

يحدث التالي:

ترسل اللبنة “رسالة معينة” إلى جميع الكائنات التي لديها لبنة:

عندما أتلقى “رسالة معينة”

يبدأ الكائن المستقبل بتنفيذ الأوامر الموجودة في هذا المقطع.
يتوقف مؤقتًا الكائن المرسل عن متابعة التعليمات التالية في كوده حتى ينتهي جميع الكائنات من تنفيذ مقاطعها الخاصة بالرسالة المرسلة.

  • الاجابة : بث الرسالة وانتظر.

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

الكائن الرئيسي يحتوي على:

أرسل “ابدأ الهجوم” وانتظر
قل “لقد أكملت حركتي”

كائن العدو يحتوي على:

عندما أتلقى “ابدأ الهجوم”
تحرك نحو الشخصية

بهذه الطريقة، تنتظر الشخصية الرئيسية انتهاء حركة العدو قبل متابعة تعليماتها التالية.

باختصار، لبنة “أرسل … وعندما أتلقى” هي أداة قوية للتحكم في التزامن بين الكائنات، وتسمح بإنشاء برامج أكثر تنظيمًا وديناميكية، خاصة في بيئات البرمجة المرئية مثل سكراتش.