الدرس 14: مشروعنا الكبير الأول! 🌟 (قصة تفاعلية ممتعة)
أهلاً وسهلاً بكم أيها الأبطال المبرمجون في محطتنا الإبداعية الكبرى! 🎉 لقد قطعنا معًا رحلة طويلة وممتعة في عالم بايثون، تعلمنا فيها كيف نخزن الكنوز في المتغيرات، وكيف نجعل بايثون يتخذ قرارات ذكية بالشروط، وكيف يكرر الأوامر بالحلقات، وكيف ينظم الأشياء في القوائم، وحتى كيف يرسم بالسلحفاة! اليوم، سنجمع الكثير من هذه المهارات الرائعة لنبني مشروعنا الكبير الأول معًا: قصة تفاعلية ممتعة! 📚✨ في هذه القصة، ستكون أنت البطل، وقراراتك هي التي ستحدد مسار الأحداث! هل أنت مستعد لتكون كاتب ومخرج وبطل قصتك البرمجية؟ هيا بنا نبدأ هذه المغامرة المثيرة! 🚀
ما هي القصة التفاعلية؟ أنت تختار طريقك! 🗺️🧭
القصة التفاعلية هي نوع من الألعاب أو البرامج حيث يقرأ المستخدم جزءًا من القصة، ثم يُطرح عليه سؤال أو يُعرض عليه خيارات. بناءً على إجابة المستخدم أو اختياره، تتغير أحداث القصة وتأخذ مسارًا مختلفًا. هذا يعني أن نفس القصة يمكن أن يكون لها نهايات متعددة ومغامرات مختلفة في كل مرة تلعبها! كأنك تدخل كتابًا سحريًا وأنت من تقرر ماذا سيحدث بعد ذلك!
ماذا سنستخدم من أدواتنا السحرية؟ 🧰✨
لبناء قصتنا التفاعلية، سنستخدم العديد من الأدوات التي تعلمناها:
- الأمر
print()
: لعرض أحداث القصة والأسئلة على الشاشة. - الأمر
input()
: لنسأل المستخدم (أنت!) عن اختياراته وقراراته. - المتغيرات: لتخزين اسم البطل، أو بعض الأشياء التي يجمعها خلال القصة.
- جمل
if
،elif
، وelse
الشرطية: لتغيير مسار القصة بناءً على إجابات المستخدم. هذه هي قلب قصتنا التفاعلية! - (ربما) حلقات
for
أوwhile
: إذا أردنا تكرار جزء من القصة أو إعطاء المستخدم عدة محاولات. (سنجعل قصتنا اليوم بسيطة بدون حلقات معقدة للتركيز على التفاعل). - (ربما) القوائم: إذا أردنا تخزين مجموعة من العناصر التي يمكن للبطل أن يجدها. (سنجعلها بسيطة اليوم).
مشروعنا: مغامرة في جزيرة الكنز المفقود! 🏝️💎
هيا نبدأ في بناء قصتنا! ستكون قصتنا عن مغامرة بطل (أنت!) يبحث عن كنز مفقود في جزيرة غامضة. توجه إلى محرر الأكواد المدمج. امسح أي كود قديم.
الكود الذي سنكتبه سيكون مقسمًا إلى خطوات. هذا هو الكود الكامل للقصة، حاول أن تقرأه وتفهم كيف يعمل كل جزء قبل أن تكتبه بنفسك!
# الخطوة 1: بداية المغامرة واسم البطل!
print("🌟 أهلاً بك في مغامرة جزيرة الكنز المفقود! 🌟")
player_name = input("ما هو اسمك أيها المغامر الشجاع؟ ")
print("أهلاً بك يا " + player_name + "! أنت على وشك خوض مغامرة مثيرة!")
print("---------------------------------------------------")
# الخطوة 2: أول قرار في المغامرة!
print("تجد نفسك على شاطئ جزيرة استوائية غامضة. 🏝️")
print("أمامك طريقان: طريق يؤدي إلى غابة كثيفة مظلمة 🌳، وطريق آخر يؤدي إلى كهف صخري مخيف 🦇.")
choice1 = input("أي طريق ستختار؟ (اكتب 'غابة' أو 'كهف'): ")
print("---------------------------------------------------")
# الخطوة 3: بناء مسارات القصة باستخدام if و elif!
if choice1 == "غابة":
print("\nقررت دخول الغابة الكثيفة. الأشجار عالية وتحجب ضوء الشمس.")
print("بعد قليل، تسمع صوت حفيف غريب! 🦉")
choice_forest = input("هل ستتحقق من مصدر الصوت أم ستهرب بسرعة؟ (اكتب 'تحقق' أو 'اهرب'): ")
print("---------------------------------------------------")
if choice_forest == "تحقق":
print("\nبشجاعة، تتقدم نحو الصوت لتجد بومة حكيمة! تقول لك: 'الكنز الحقيقي هو المعرفة!' وتقدم لك كتابًا قديمًا. 📜 نهاية سعيدة ولكن مختلفة!")
elif choice_forest == "اهرب":
print("\nالخوف يسيطر عليك فتهرب من الغابة وتعود إلى الشاطئ خالي الوفاض. ربما المغامرة ليست لك اليوم. 🌊 نهاية حذرة.")
else:
print("\nلم تختر خيارًا معروفًا في الغابة، فضعت بين الأشجار! 🌲 نهاية ضائعة.")
elif choice1 == "كهف":
print("\nبشجاعة، تدخل الكهف الصخري المظلم. الرطوبة عالية وتسمع صوت قطرات ماء.")
print("في نهاية الكهف، تجد صندوقًا خشبيًا قديمًا! 🎁")
choice_cave = input("هل ستفتح الصندوق أم ستتركه خوفًا من فخ؟ (اكتب 'افتح' أو 'اترك'): ")
print("---------------------------------------------------")
if choice_cave == "افتح":
print("\nبحذر، تفتح الصندوق لتجد بداخله كنزًا من الجواهر اللامعة والذهب! 💎💰 لقد وجدت الكنز المفقود! يا لك من بطل! نهاية المغامرة الكبرى!")
elif choice_cave == "اترك":
print("\nالحذر يمنعك من فتح الصندوق. تخرج من الكهف وتتساءل ماذا لو... ربما فرصة أخرى. 🌊 نهاية مترددة.")
else:
print("\nلم تختر خيارًا معروفًا في الكهف، فبقيت تحدق في الصندوق إلى الأبد! 🗿 نهاية محيرة.")
else:
print("\nيبدو أنك لم تختر طريقًا واضحًا يا " + player_name + ". وقفت على الشاطئ حتى غربت الشمس وضاعت فرصة المغامرة. 🌅 نهاية الانتظار.")
# الخطوة 4: رسالة ختامية!
print("\n---------------------------------------------------")
print("شكرًا لك على لعب مغامرة جزيرة الكنز المفقود يا " + player_name + "! نأمل أن تكون قد استمتعت بالرحلة!")
والآن يا بطل، حان دورك! اكتب هذا الكود سطرًا بسطر في محرر الأكواد المدمج. انتبه جيدًا للإزاحات (المسافات البادئة) بعد جمل if
، elif
، و else
، فهي مهمة جدًا ليقوم بايثون بتنفيذ الأوامر الصحيحة في كل حالة.
شغل برنامج القصة التفاعلية الآن! جرب اختيار مسارات مختلفة في كل مرة تلعب فيها لترى كيف تتغير الأحداث والنهايات! هل يمكنك اكتشاف كل النهايات الممكنة؟
تطوير قصتك: أفكار إضافية! 💡✍️
هذه مجرد بداية! يمكنك جعل قصتك أكثر إثارة وتشويقًا بإضافة:
- المزيد من الخيارات والمسارات: اجعل القصة أطول وأكثر تعقيدًا مع المزيد من القرارات.
- عناصر لجمعها: ربما يجد البطل مفتاحًا في الغابة يحتاجه لفتح الصندوق في الكهف (ستحتاج لمتغير لتخزين ما إذا كان لديه المفتاح).
- ألغاز بسيطة: اطلب من اللاعب حل لغز بسيط للاستمرار.
- استخدام الألوان أو الرموز التعبيرية (emojis): لجعل النص أكثر جاذبية (كما فعلنا قليلاً!).
- شخصيات أخرى: ربما يلتقي البطل بشخصيات تساعده أو تعيقه.
لعبة الأفعى البسيطة (نصية) – فكرة مشروع آخر (للمستكشفين المتقدمين!) 🐍
إذا كنت تشعر بمزيد من التحدي، يمكنك محاولة بناء نسخة نصية بسيطة جدًا من لعبة الأفعى الكلاسيكية! هذا مشروع أكثر تعقيدًا وسيتطلب منك التفكير في:
- تمثيل لوحة اللعب: ربما باستخدام قائمة من القوائم (شبكة).
- تمثيل الأفعى: قائمة من الإحداثيات (مواقع جسم الأفعى).
- تحريك الأفعى: بناءً على إدخال المستخدم (فوق، تحت، يمين، يسار).
- الطعام: وضعه عشوائيًا على اللوحة.
- شروط الفوز والخسارة: (أكل الطعام، الاصطدام بنفسها أو بالجدار).
- حلقة رئيسية للعبة: تستمر في تحديث اللعبة وعرضها حتى تنتهي.
هذا المشروع سيكون رائعًا لتطبيق كل ما تعلمته، وخاصة القوائم والحلقات والشروط بشكل مكثف. لكن لا تقلق إذا كان يبدو صعبًا الآن، القصة التفاعلية هي بداية ممتازة!
جرب بنفسك! كن مؤلف قصص بايثون! 🧪📚✨
أفضل طريقة للاستمتاع بالمشاريع هي بتخصيصها وجعلها خاصة بك!
عد إلى محرر الأكواد المدمج وجرب هذه الأفكار لقصتك التفاعلية:
- غيّر أحداث القصة بالكامل! ابتكر مغامرة في الفضاء، أو في قلعة مسكونة، أو في مدينة مستقبلية.
- أضف المزيد من الخيارات في كل مرحلة. إذا كان اللاعب في الغابة، ربما يجد نهرًا، هل يعبره سباحة أم يبحث عن جسر؟
- أضف شخصيات جديدة يتفاعل معها البطل. ربما قرصان عجوز يعطيه نصيحة؟
- حاول استخدام متغير لتتبع “نقاط الشجاعة” أو “مستوى الطاقة” للبطل، واجعل بعض الخيارات تؤثر عليها. مثلاً، إذا اختار الهروب، تقل نقاط الشجاعة.
الإبداع لا حدود له! كلما جربت أكثر، أصبحت مبرمجًا وكاتب قصص أفضل!
ملخص مشروعنا الكبير اليوم: 🌟✨
- المشاريع تجمع كل شيء: المشاريع هي فرصة رائعة لتطبيق كل المفاهيم التي تعلمناها (متغيرات، شروط، إدخال/إخراج، وغيرها) في بناء شيء متكامل وممتع.
- القصة التفاعلية: طريقة ممتعة لجعل المستخدم يشارك في أحداث البرنامج ويؤثر على مسارها باستخدام
input()
وجملif/elif/else
. - التخطيط مهم: قبل البدء في كتابة الكود لمشروع كبير، من الجيد أن تفكر في فكرة القصة الرئيسية والخيارات المختلفة التي ستوفرها.
- الإبداع والمرح: الهدف من المشاريع هو التعلم والاستمتاع بالعملية الإبداعية!
أبدعتم أيها المبرمجون المبدعون! 🌟 لقد قمتم اليوم ببناء مشروعكم الكبير الأول، قصة تفاعلية كاملة! هذا إنجاز رائع يوضح مدى تقدمكم في رحلة تعلم بايثون. تذكروا، البرمجة ليست فقط كتابة أوامر، بل هي وسيلة لتحويل أفكاركم إلى واقع، سواء كانت قصصًا، ألعابًا، أو أدوات مفيدة.
استمروا في بناء مشاريعكم الخاصة، فكل مشروع هو مغامرة جديدة وفرصة لتعلم المزيد. أنتم الآن مبرمجون حقيقيون! إلى اللقاء في مغامرات برمجية قادمة، وربما مشاريع أكثر تحديًا وإثارة! مع السلامة أيها الأبطال! 👋