10–12 سنة · التكنولوجيا والبرمجة

شخصيات Scratch مش بتسمع بعض؟ تعلّم سر الرسائل البرمجية Broadcast

تخيل إنك بتصمم لعبة على Scratch فيها لاعب، وحارس، وباب مقفول.

لما اللاعب يجمع المفتاح، المفروض الحارس يتحرك، والباب يفتح، والخلفية تتغير.

ممكن تحاول تخلي كل شخصية تراقب اللي بيحصل طول الوقت، لكن مع زيادة عدد الشخصيات والأحداث، المشروع ممكن يبقى أصعب في التنظيم.

هنا بنحتاج فكرة مهمة اسمها Broadcast، أو إرسال رسالة برمجية.

يعني إيه Broadcast؟

تخيل إن مدير المدرسة أعلن في الإذاعة: «بدأ وقت النشاط».

الطلاب اللي عندهم نشاط معين هيبدأوا يتحركوا بناءً على الإعلان.

في Scratch، بنستخدم broadcast علشان نرسل رسالة باسم معين، وبنستخدم when I receive علشان نحدد إيه اللي هيحصل لما الرسالة توصل.

مؤسسة Scratch Foundation بتشرح إن البلوكين دول بيشتغلوا مع بعض لتنظيم التواصل بين الشخصيات.

الرسالة نفسها مش لازم تظهر للمستخدم على الشاشة. هي إشارة داخل المشروع بتخلي أجزاء مختلفة من البرنامج تستجيب لحدث واحد.

مثال: المفتاح اللي بيفتح الباب

خلينا نصمم مشهد بسيط فيه ثلاث شخصيات: اللاعب، والمفتاح، والباب.

لما اللاعب يلمس المفتاح، شخصية المفتاح تبعت رسالة اسمها key-collected.

شخصية الباب يكون عندها كود يبدأ بـ when I receive key-collected، وبعده أمر لتغيير المظهر إلى باب مفتوح.

ممكن كمان شخصية المفتاح تختفي، أو يظهر صوت بسيط يدل على نجاح المهمة.

كده إحنا فصلنا مسؤوليات الشخصيات: المفتاح بيعلن إن اللاعب جمعه، والباب بيقرر يستجيب إزاي.

ليه ما نحطش كل الكود في شخصية واحدة؟

لو كل التعليمات موجودة داخل اللاعب، هنحتاج نعدل كوده كل مرة نضيف بابًا أو شخصية جديدة.

لكن باستخدام الرسائل، كل شخصية تقدر تحتفظ بالأوامر الخاصة بيها.

وده أسلوب بيساعد في تنظيم المشروعات، خصوصًا لما يكون فيها أحداث متعددة.

مش معناه إن Broadcast أفضل حل لكل موقف. أحيانًا المتغيرات أو الشروط المباشرة تكون أنسب، حسب تصميم اللعبة.

نشاط عملي: لعبة الباب السري

افتح Scratch، واعمل مشروعًا جديدًا فيه خلفية لغرفة وشخصيتين: مفتاح وباب.

خلي المفتاح يرسل رسالة open-door عند الضغط عليه.

في شخصية الباب، استخدم when I receive open-door وبعده أمر switch costume لتغيير شكل الباب من مقفول إلى مفتوح.

بعدها أضف شخصية ثالثة، زي حارس، وخليها تستقبل نفس الرسالة وتقول: «تقدر تعدّي دلوقتي».

شغّل المشروع ولاحظ إن رسالة واحدة تقدر تبدأ أوامر في أكثر من شخصية.

ده تطبيق مبسط لنفس المفهوم الموجود في دليل Raspberry Pi Foundation لتعليم Scratch، واللي بيوضح إن الرسالة ممكن تستقبلها عدة شخصيات.

طب لو محتاج الأحداث تحصل بالترتيب؟

في Scratch فيه فرق بين broadcast وbroadcast and wait.

الأول بيرسل الرسالة ويكمل تنفيذ الأوامر التالية من غير انتظار انتهاء كل الأوامر اللي بدأت بسببها.

أما broadcast and wait فبيستنى لحد ما السكريبتات اللي استجابت للرسالة تخلص قبل ما يكمل.

تخيل إنك عايز الباب يفتح بالكامل قبل ما تبدأ حركة الحارس. هنا ممكن تحتاج تنظم التوقيت باستخدام النسخة اللي بتنتظر، أو تستخدم رسالة جديدة بعد انتهاء الحركة.

المهم نفهم إن إرسال الرسالة مش معناه إن كل الأحداث هتخلص في نفس اللحظة.

اختبر المشروع بطريقة منظمة

جرّب تضغط على المفتاح مرة واحدة، وشوف هل الباب والحارس استجابوا.

بعدها جرّب الضغط أكثر من مرة. هل فيه حركة بتتكرر بشكل غير مرغوب؟ وهل الباب بيرجع لحالته الأصلية لما تبدأ اللعبة من جديد؟

ممكن تكتشف إنك محتاج تضيف أوامر تهيئة تحت when green flag clicked علشان كل شخصية تبدأ بالحالة المناسبة.

ده نشاط تعليمي مقترح لتطوير مهارات التنظيم والاختبار، مش تجربة بحثية تثبت إن استخدام Broadcast وحده بيحسن التفكير البرمجي.

تحدي إضافي: لعبة فيها مرحلتين

بعد ما المشروع الأول يشتغل، أضف رسالة جديدة اسمها next-level.

لما اللاعب يوصل للباب المفتوح، ابعت الرسالة دي علشان تغير الخلفية وتظهر شخصيات المرحلة التالية.

اختار أسماء واضحة للرسائل، زي game-start وlevel-complete، بدل أسماء عامة زي message1.

دليل Raspberry Pi Foundation بينصح باستخدام أسماء مفهومة للشخصيات والرسائل والمتغيرات، علشان المشروع يبقى أسهل في القراءة والتعديل.

الخلاصة

تعلم البرمجة مش مجرد معرفة البلوكات واستخدامها.

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

ورسائل Broadcast مثال بسيط على فكرة أكبر: الأنظمة المختلفة ممكن تتعاون من غير ما نحط كل مسؤولياتها في مكان واحد.

وده متوافق مع فلسفة Techware: «الروبوت مش الهدف… الإنسان هو الهدف».

المصادر والمراجع

  1. Scratch Foundation — Broadcasting — تاريخ النشر غير محدد
  2. Raspberry Pi Foundation — Getting Started with Scratch — تاريخ النشر غير محدد
  3. Raspberry Pi Foundation — Fruit Salad — تاريخ النشر غير محدد

إعداد: فريق Techware Academy التعليمي · محتوى تثقيفي عام وتوصيات قابلة للتعديل حسب احتياجات الطفل.

← تصفح مقالات تانية