0 من 15 يومًا نسبة الإنجاز: 0%
الأسبوع الثاني - اليوم الثامن

المنطق الشرطي (إذا / إذن)

⏱ ساعة واحدة ⚙ نظري وعملي
مخرجات التعلم
  • تعريف المنطق الشرطي ودوره الأساسي في البرمجة التفاعلية.
  • تقييم الحالات المنطقية (صواب / خطأ) للتحكم في مسار تنفيذ البرنامج.
  • استخدام لبنات "إذا ... إذن" (If-Then) لتغيير سلوك الكائن بناءً على قواعد محددة.
  • إنشاء مقاطع برمجية متفرعة تستجيب بشكل مختلف بناءً على التغير في الحالات.

1. تعريف المنطق الشرطي ودوره التفاعلي

يسمح المنطق الشرطي (Conditional Logic) للبرنامج باتخاذ القرارات وتنفيذ مقاطع برمجية مختلفة بناءً على الحالة الحالية. ويتبع البنية المنطقية: "إذا تحقق شرط معين، إذن قم بتنفيذ هذا الإجراء". هذه هي الطريقة التي تتفاعل بها البرامج مع قرارات المستخدم، أحداث اللعبة، أو العمليات الحسابية، مما يحول الأكواد الخطية البسيطة إلى برامج تفاعلية وذكية.

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

If-Then Decision Branch Flowchart
الشكل 8.1: مخطط انسيابي منطقي يمثل فرع اتخاذ القرار البسيط "إذا ... إذن".

2. تقييم التعبيرات المنطقية (صواب / خطأ)

تقوم العبارة الشرطية بتقييم التعبير المنطقي (Boolean Expression)، والذي لا يحتمل سوى نتيجة من اثنتين: إما صواب (True) أو خطأ (False). في سكراتش، تأخذ هذه الشروط شكل اللبنات السداسية (على سبيل المثال: زر الفأرة مضغوط؟ أو مفتاح المسافة مضغوط؟). يقوم البرنامج بتقييم الشرط: إذا كانت النتيجة صواب، يتم تنفيذ اللبنات الموجودة بداخل العبارة الشرطية؛ وإذا كانت خطأ، يتم تخطيها.

يعد المنطق البولياني (Boolean Logic) حجر الأساس للحوسبة الرقمية. يقوم الحاسوب بتقييم مقارنات مثل: هل الموضع (س) > 200؟ هل الصحة < 1؟ إذا كانت العبارة صحيحة، تتحقق الحالة المنطقية، ويُفتح المسار لتنفيذ الكود المتداخل.

If-Then-Else Decision Flowchart
الشكل 8.2: مخطط انسيابي منطقي يمثل اتخاذ القرار المتفرع "إذا ... إذن ... وإلا".

3. استخدام لبنات "إذا ... إذن" لتغيير السلوك

تحتوي لبنة إذا [الشرط] إذن القياسية على فراغ سداسي الشكل لوضع الشرط. إذا كانت نتيجة الشرط 'صواب'، سيقوم المقطع البرمجي بتشغيل اللبنات المتداخلة بداخل مساحة لبنة 'إذا'. يُستخدم هذا الهيكل للتحقق من وقوع أحداث معينة، مثل التحقق مما إذا كانت شخصية اللاعب تلامس عقبة خطيرة لتقليل نقاط حياتها.

من خلال دمج لبنات "إذا ... إذن" داخل الحلقة التكرارية المركزية للعبة (Game Loop)، يستمر البرنامج في التحقق من الشروط باستمرار. يتيح ذلك تنفيذ إجراءات في الوقت الفعلي، مثل تطبيق الجاذبية فقط عندما تكون الشخصية غير ملامسة للأرض، مما يسمح ببرمجة فيزياء ألعاب المنصات (Platformers) باحترافية.

Logical Operators Shapes Diagram
الشكل 8.3: لبنات المعاملات المنطقية السداسية التي تُستخدم لبناء شروط معقدة في سكراتش.

4. إنشاء مقاطع برمجية متفرعة (Branching)

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

يتيح لك منطق التفرع (Branching Logic) إدارة حالات اللعبة المعقدة. على سبيل المثال: إذا كانت 'نقاط الحياة' > 0، استمر في اللعب (التحرك والاستشعار)؛ وإلا، قم بعرض شاشة 'انتهت اللعبة' (Game Over). يؤدي ذلك إلى تقسيم مقاطعك البرمجية إلى مسارات مستقلة تعتمد كلياً على متغيرات حالة اللعبة.

نشاط عملي

تصميم زر تفاعلي لتغيير اللون

  1. أضف كائن "زر" (Button) إلى المنصة واضبط حجمه إلى 150%.
  2. أضف حلقة "كرِّر باستمرار" أسفل لبنة الحدث "عند النقر على العلم الأخضر".
  3. بداخل الحلقة، أضف لبنة الشرط المتفرع "إذا ... إذن ... وإلا".
  4. اسحب لبنة الاستشعار السداسية مفتاح [المسافة] مضغوط؟ وضعها في الفراغ السداسي الخاص بالشرط.
  5. في قسم "إذن" (الجزء العلوي)، أضف لبنة: غيّر تأثير [اللون] بمقدار 25.
  6. في قسم "وإلا" (الجزء السفلي)، أضف لبنة: اجعل تأثير [اللون] مساوياً 0.
  7. قم بتشغيل المشروع. اضغط على مفتاح المسافة (المسطرة) وحرره لمشاهدة الزر وهو يغير لونه بذكاء بناءً على مدخلاتك.
شرح المقطع البرمجي النموذجي
  1. البداية والمراقبة المستمرة: [عند النقر على العلم الأخضر] -> [كرِّر باستمرار] (من فئة التحكم).
  2. إدراج الشرط المتفرع: بداخل الحلقة، أضف -> [إذا <مفتاح (المسافة) مضغوط؟> إذن ... وإلا] (من فئة الاستشعار).
  3. الإجراء عند تحقق الشرط: داخل قسم 'إذن' (أثناء الضغط): أضف [غيّر تأثير [اللون] بمقدار (25)] (من فئة الهيئة).
  4. الإجراء عند عدم تحقق الشرط: داخل قسم 'وإلا' (عند الإفلات): أضف [اجعل تأثير [اللون] مساوياً (0)] (من فئة الهيئة).
  5. الاختبار: اختبر المشروع. سيومض الزر بتأثيرات لونية متتالية طالما كان مفتاح المسافة مضغوطاً، وسيعود إلى لونه الأصلي بمجرد تحرير المفتاح.