إعلان
مساحة إعلانية أعلى الصفحة (Leaderboard 728x90 / متجاوبة للجوال)

مشروع سكراتش: المتغيرات

الميدان: بناء المشاريع
المقطع التعلمي: المتغيرات
الوضعية التعلمية: مشروع المتغيرات

الوضعية الانطلاقية

أثناء لعبك للألعاب الإلكترونية (مثل ألعاب جمع النقاط أو صيد الأهداف)، تلاحظ دائماً وجود عداد يُسجّل رصيد نقاطك ويزداد تلقائياً في كل مرة ينجح فيها بطلك في التقاط جائزة أو اصطياد هدف.
التساؤل: كيف يستطيع الحاسوب تذكّر عدد النقاط وتحديثه باستمرار أثناء سير اللعبة؟ وما هي الأداة البرمجية في برنامج سكراتش (Scratch) التي تسمح لنا بحفظ القيم الرقمية وتعديلها تلقائياً؟
سنكتشف ذلك عملياً من خلال بناء مشروع متكامل: لعبة الخفاش والفأر باستخدام مفهوم المتغيرات (Variables).

1. فكرة المشروع ومظهر اللعبة

تقوم اللعبة على محاكاة مطاردة تفاعلية بين كائنين داخل غرفة مغلقة:

  • كائن الخفاش: يتحكم فيه اللاعب بواسطة مفاتيح الأسهم في لوحة المفاتيح (أعلى، أسفل، يمين، يسار)، ويطير باستمرار مع تغيير مظهره لمحاكاة خفقان الأجنحة، ويلتف بذكاء عند حواف الشاشة.
  • كائن الفأر: يمثل الهدف (الفريسة)؛ يظهر في مواضع عشوائية على المنصة.
  • نظام تسجيل النقاط: في كل مرة ينجح الخفاش في ملامسة الفأر (اصطياده)، تزداد قيمة المتغير النقاط بمقدار 1، وينتقل الفأر فوراً إلى موضع عشوائي جديد.

مظهر اللعبة ومكونات المشروع

عنصر المشروع الاسم في سكراتش الدور والوظيفة في اللعبة
المنصة (الخلفية) Room1 ميدان المطاردة الذي يتحرك داخله الكائنان.
الكائن الأول الخفاش (Bat2) الكائن الرئيسي، يُوجَّه بالأسهم، ويطير باستمرار ويلتف حول الحواف.
الكائن الثاني الفأر (Mouse1) الفريسة المستهدفة؛ يستشعر الاصطدام ويقفز لموضع عشوائي.
المتغير البرمجي النقاط مساحة تخزين لتسجيل وعرض مجموع النقاط المحققة على المنصة.

2. خطوات إنشاء واستخدام المتغير (النقاط)

المتغير (Variable): هو مكان محجوز في ذاكرة الحاسوب نُعطيه اسماً محدداً، ونستخدمه لتخزين قيمة عددية أو نصية قابلة للتعديل والتغيير أثناء تشغيل البرنامج.

لإنشاء متغير عداد النقاط في سكراتش، نتبع الخطوات الآتية:

  1. من لوحة مجموعات اللبنات، ننقر على فئة المتغيرات (Variables) البرتقالية.
  2. نضغط على زر إنشاء متغير (Make a Variable).
  3. نكتب اسم المتغير: النقاط، ونتركه مفعلاً للخيار "لجميع الكائنات"، ثم نضغط موافق.
  4. نُفعّل علامة الصح بجانب اسم المتغير ليظهر عداد النقاط مباشرة على المنصة في الزاوية العلوية.

3. المقاطع البرمجية الخاصة بكائن الخفاش (تفريغ وشرح تحليلي)

يحتوي كائن الخفاش على ثلاثة مقاطع برمجية رئيسية تؤدي أدوار التحكم والتوجيه، وبدء الطيران، والالتفاف الذكي:

أ. التحكم في الاتجاه وتبديل المظاهر بواسطة مفاتيح الأسهم

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

  • عند ضغط مفتاح [السهم العلوي]:
    اتجه نحو الاتجاه (0) (التوجه نحو الأعلى)
    غيّر المظهر إلى [bat2-a]
  • عند ضغط مفتاح [السهم الأيمن]:
    اتجه نحو الاتجاه (90) (التوجه نحو اليمين)
    غيّر المظهر إلى [bat2-a1]
  • عند ضغط مفتاح [السهم الأيسر]:
    اتجه نحو الاتجاه (-90) (التوجه نحو اليسار)
    غيّر المظهر إلى [bat2-a2]
  • عند ضغط مفتاح [السهم السفلي]:
    اتجه نحو الاتجاه (180) (التوجه نحو الأسفل)
    غيّر المظهر إلى [bat2-a3]

ب. مقطع التهيئة وتصفير النقاط وحركة الطيران المستمر

عند النقر على العلم الأخضر، تبدأ اللعبة بتهيئة الموضع المبدئي للخفاش وتصفير عداد النقاط، ثم تشغيل حلقة حركة لا نهائية:

• عند نقر العلم الأخضر
• اجعل الموضع س مساوياً (180)
• اجعل الموضع ص مساوياً (-90)
• اتجه نحو الاتجاه (0)
• غيّر المظهر إلى [bat2-a]
• اجعل [النقاط] مساوياً (0) ← (تصفير العداد عند انطلاق اللعبة)
• كرر باستمرار:
    ↳ تحرك (10) خطوة
    ↳ انتظر (0.05) ثانية ← (فائدة الانتظار: ضبط سرعة الطيران لتكون سلسة ومناسبة لتحكم اللاعب)

ج. خوارزمية الالتفاف الذكي حول حواف المنصة (Screen Wrap-Around)

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

• عند نقر العلم الأخضر
• كرر باستمرار:
    ↳ إذا كان <(الاتجاه = 0) و (الموضع ص > 206)> إذن:
        اجعل الموضع ص مساوياً (-206) (الخروج من الأعلى يجعله يدخل من الأسفل)
    ↳ إذا كان <(الاتجاه = 180) و (الموضع ص = -206)> إذن:
        اجعل الموضع ص مساوياً (206) (الخروج من الأسفل يجعله يدخل من الأعلى)
    ↳ إذا كان <(الاتجاه = -90) و (الموضع س = -251)> إذن:
        اجعل الموضع س مساوياً (258) (الخروج من اليسار يجعله يدخل من اليمين)
    ↳ إذا كان <(الاتجاه = 90) و (الموضع س = 258)> إذن:
        اجعل الموضع س مساوياً (-251) (الخروج من اليمين يجعله يدخل من اليسار)

4. المقطع البرمجي لكائن الفأر (تفريغ وشرح تحليلي)

الفأر هو الهدف المطلوب اصطياده. يعتمد مقطعه البرمجي على التحسس وتوليد الأعداد العشوائية وتحديث المتغير:

• عند نقر العلم الأخضر
• كرر باستمرار:
    ↳ إذا كان <ملامس لـ [الخفاش]؟> إذن:
        غيّر [النقاط] بمقدار (1) ← (زيادة عداد النقاط بنقطة واحدة لصالح اللاعب)
        اجعل الموضع س مساوياً (اختر عدداً عشوائياً بين -215 و 215)
        اجعل الموضع ص مساوياً (اختر عدداً عشوائياً بين -160 و 160)
        انتظر (0.5) ثانية

تحليل وظائف هذا المقطع:

  1. لبنة التحسس الشرطية: ملامس لـ [الخفاش]؟ تُراقب لحظياً حدوث التلامس بين الكائنين داخل حلقة التكرار المستمر.
  2. تحديث قيمة المتغير: بمجرد تحقق التلامس، تقوم لبنة غيّر [النقاط] بمقدار 1 بإضافة نقطة إلى رصيد المتغير المخزن في الذاكرة.
  3. التموضع العشوائي: تُستخدم دالة اختر عدداً عشوائياً لتعيين موقع جديد غير متوقع للفأر على المحورين (س، ص) ضمن حدود الغرفة المرئية.
  4. أهمية لبنة الانتظار 0.5 ثانية: تمنح مهلة زمنية ضرورية لكي يبتعد الخفاش بعد الالتقاط، حتى لا يتم احتساب النقاط عدة مرات لنفس الاصطياد بالخطأ.

5. معاينة المشروع وتجربته التفاعلية

يمكنك تجربة اللعبة مباشرة عبر الإطار التفاعلي أدناه: اضغط على العلم الأخضر لبدء اللعبة، واستخدم مفاتيح الأسهم لتوجيه الخفاش ومطاردة الفأر لجمع أكبر عدد من النقاط:

📖 أكتب في كراسي (ملخص الحصة)

1. مفهوم المتغير (Variable):
مكان محجوز في ذاكرة الحاسوب نُعطيه اسماً دالاً، ونستخدمه لتخزين قيمة عددية أو نصية قابلة للتغيير والتحديث أثناء تشغيل البرنامج.

2. إنشاء المتغير وإدارته:

  • يتم إنشاؤه من فئة المتغيرات (Variables) بالنقر على خيار إنشاء متغير وتسميته (مثل: النقاط).
  • يمكن التحكم في ظهوره على المنصة عبر تفعيل خانة الاختيار أو برمجياً بواسطة لبنتي: أظهر المتغير و أخفِ المتغير.

3. لبنات التحكم في قيم المتغيرات:

  • اجعل [المتغير] مساوياً [قيمة]: تُستخدم للتهيئة وإعطاء قيمة أولية (مثل تصفير النقاط عند بداية اللعبة: اجعل [النقاط] مساوياً 0).
  • غيّر [المتغير] بمقدار [قيمة]: تُستخدم لزيادة أو إنقاص قيمة المتغير بقيمة محددة (مثل: غيّر [النقاط] بمقدار 1).

4. الربط بين المتغيرات والتحسس والشرط:
تُستخدم جملة الشرط إذا [ملامس لـ كائن؟] إذن لتنفيذ أمر زيادة المتغير فور تحقق حدث اصطدام الكائنات ببعضها.

5. دالة توليد الأعداد العشوائية:
تُستخدم لبنة اختر عدداً عشوائياً بين (...) و (...) من فئة العمليات لجعل إحداثيات ظهور الكائنات غير متوقعة لإضفاء طابع التحدي والتشويق على الألعاب.

6. ضبط الحركة والالتفاف حول الحواف (Screen Wrap-Around):
توجيه الكائن بالأسهم وتغيير مظاهره، مع فحص إحداثياته (س، ص) عند الحواف لإعادة إدخاله من الطرف المقابل وتفادي توقفه أو اختفائه عن الشاشة.

تطبيق صفي

في مشروع لعبة الخفاش والفأر الذي أنجزته، قم بإجراء أحد التطويرات البرمجية التالية:

  1. إضافة مؤثر صوتي: أضف لبنة شغّل الصوت [pop] من فئة الأصوات داخل شرط الملامسة، ليصدر صوتاً ممتعاً في كل مرة يصطاد فيها الخفاش الفأر.
  2. إضافة مؤقت زمني: أنشئ متغيراً جديداً باسم الزمن، واجعله يبدأ من 30 ثانية وينقص بمقدار -1 كل ثانية، حتى تنتهي اللعبة عند وصوله إلى الصفر.
  3. إعلان الفوز: أضف شرطاً يفحص: إذا أصبحت النقاط مساوية لـ 10، يقول الخفاش: "مبروك! لقد فزت في اللعبة!" ويتوقف البرنامج.
Ammar BAGHDADI كاتب المقال

مرحباً بك في مدونتنا! نحرص على تقديم شروحات تعليمية دقيقة وموثوقة، وبرامج وتطبيقات منتقاة بعناية لخدمة جميع المتعلمين والمستخدمين.

التعليقات والمناقشات

أضف تعليقك:

إعلان
مساحة إعلانية أسفل المقال (Rectangle 336x280 / متجاوبة)