الدرس 15: مشروع التخرج! 🎓 (آلة حاسبة مطورة أو لعبة تخمين مع تلميحات)

في هذا الدرس الختامي والمميز، سنقوم ببناء مشروع تخرج! سنختار بين آلة حاسبة متطورة أو لعبة تخمين أرقام مع تلميحات ذكية، مع التركيز على استخدام الدوال لتنظيم الكود. وسنختتم رحلتنا بتشجيع على مواصلة الإبداع!
رقم الدرس 15
آخر تحديث 2025/05/22
تقدم القراءة

بالتأكيد، تم استبدال جميع الشورت كود المطلوبة في هذا الدرس الختامي الرائع. إليك النص المُعدَّل:

أهلاً وسهلاً بكم أيها المخترعون العباقرة في درسنا الأخير والمميز جدًا في هذه السلسلة الرائعة! 🎉 لقد سافرنا معًا عبر عوالم بايثون المدهشة، تعلمنا أسرار الأوامر، صنعنا صناديق سحرية، جعلنا بايثون يفكر ويقرر ويكرر، وحتى يرسم ويبني قصصًا! اليوم، سنحتفل بكل ما تعلمناه من خلال بناء مشروع تخرج نتحدى فيه أنفسنا ونبدع فيه باستخدام كل أدواتنا السحرية، وخاصةً وصفتنا السرية: الدوال (Functions) لجعل كودنا أكثر تنظيمًا واحترافية! سنختار بين بناء آلة حاسبة أكثر تطورًا أو تطوير لعبة تخمين الأرقام لتصبح أكثر إثارة مع تلميحات ذكية! هل أنتم مستعدون لهذا التحدي الإبداعي الكبير؟ هيا بنا نضع بصمتنا البرمجية الأخيرة في هذه الرحلة! 🚀🏆

لماذا الدوال مهمة في المشاريع الكبيرة؟ سر التنظيم والاحتراف! 🧐✨

تذكرون وصفتنا البرمجية (الدوال)؟ عندما تصبح مشاريعنا أكبر وأكثر تعقيدًا، تصبح الدوال لا غنى عنها! لماذا؟

  • التنظيم الخارق (Super Organized): الدوال تقسم مشروعنا الكبير إلى مهام صغيرة وواضحة. كل دالة مسؤولة عن جزء معين (مثل دالة للجمع، دالة لعرض القائمة، دالة للتحقق من الإجابة). هذا يجعل الكود سهل القراءة والفهم والتعديل، كأنك ترتب غرفتك الكبيرة بوضع كل لعبة في صندوقها الخاص! 🧸
  • وداعًا للتكرار المُمِل (No More Boring Repetition!): إذا كنت تحتاج لتنفيذ نفس مجموعة الأوامر عدة مرات، فقط استدع الدالة! لا حاجة لكتابة نفس الكود مرارًا وتكرارًا. هذا يوفر الوقت ويقلل الأخطاء. DRY (Don’t Repeat Yourself – لا تكرر نفسك) هو شعار المبرمجين الأبطال! 🦸
  • سهولة الصيانة والتطوير (Easy to Fix and Improve): إذا كان هناك خطأ في جزء معين من برنامجك، وكان هذا الجزء مكتوبًا داخل دالة، يمكنك إصلاح الخطأ في مكان واحد فقط (داخل الدالة)، وسينعكس الإصلاح في كل مكان تستدعي فيه هذه الدالة! وإذا أردت تطوير مهمة معينة، تعدل فقط الدالة المسؤولة عنها.

باختصار، الدوال تجعل مشاريعنا أنظف، أذكى، وأسهل في التعامل معها، تمامًا مثلما يفعل المهندس البارع عند بناء برج ضخم!

مشروع التخرج الأول: آلة حاسبة مطورة باستخدام الدوال! 🔢➕➖✖️➗

تتذكرون آلتنا الحاسبة البسيطة؟ هيا نجعلها أكثر قوة وتنظيمًا باستخدام الدوال!

✨ خطوات بناء الآلة الحاسبة المطورة: ✨

توجه إلى محرر الأكواد المدمج. امسح أي كود قديم.

هذا هو الكود الكامل للآلة الحاسبة المطورة. حاول أن تقرأه وتفهم كيف تم تقسيم العمل إلى دوال، وكيف يتم استدعاء هذه الدوال.


def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

def multiply(x, y):
    return x * y

def divide(x, y):
    if y == 0: # لا يمكن القسمة على صفر!
        return "خطأ: لا يمكن القسمة على صفر!"
    else:
        return x / y

print("أهلاً بك في الآلة الحاسبة المطورة!")

# يمكننا وضع الجزء الرئيسي من البرنامج داخل دالة أيضًا لجعله أكثر تنظيمًا!
def calculator_main():
    try:
        num1_text = input("أدخل الرقم الأول: ")
        num1 = float(num1_text) # نستخدم float ليقبل الأرقام العشرية
        num2_text = input("أدخل الرقم الثاني: ")
        num2 = float(num2_text)
    except ValueError:
        print("خطأ: الرجاء إدخال أرقام صالحة.")
        return

    operation = input("اختر العملية (+, -, *, /): ")
    result = None # متغير لتخزين النتيجة، قيمته الأولية لا شيء

    if operation == '+':
        result = add(num1, num2)
    elif operation == '-':
        result = subtract(num1, num2)
    elif operation == '*':
        result = multiply(num1, num2)
    elif operation == '/':
        result = divide(num1, num2)
    else:
        print("عملية غير معروفة!")

    if result is not None: # نطبع النتيجة فقط إذا تم حسابها
        print("النتيجة هي:", result)

# استدعاء الدالة الرئيسية لبدء الآلة الحاسبة
calculator_main()

والآن يا بطل الآلات الحاسبة، اكتب هذا الكود بنفسك في المحرر. انتبه لتعريف الدوال أولاً، ثم الجزء الرئيسي الذي يستدعيها.

🐍 محرر Python تفاعلي - اكتب الكود بنفسك
اضغط Ctrl+Enter للتشغيل
💡 اضغط "تشغيل الكود" لرؤية النتائج هنا

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

تحدي إضافي: هل يمكنك إضافة دالة لحساب “باقي القسمة” (باستخدام الرمز %)؟ أو دالة لحساب “الأس” (باستخدام الرمز **)؟ أو جعل الآلة الحاسبة تستمر في العمل حتى يطلب المستخدم الخروج (قد تحتاج إلى حلقة while True: وكلمة break للخروج، وهو تحدٍ أكبر!)?

🐍 محرر Python تفاعلي - اكتب الكود بنفسك
اضغط Ctrl+Enter للتشغيل
💡 اضغط "تشغيل الكود" لرؤية النتائج هنا

مشروع التخرج الثاني: لعبة تخمين الأرقام مع تلميحات ذكية! 🎮🔢❓

تتذكرون لعبة تخمين الرقم؟ هيا نجعلها أكثر إثارة وتشويقًا بإضافة المزيد من المحاولات وتلميحات ذكية باستخدام الدوال!

✨ خطوات بناء لعبة التخمين المطورة: ✨

امسح الكود السابق.

هذا هو الكود الكامل للعبة التخمين المطورة. كل منطق اللعبة موجود داخل دالة واحدة اسمها play_guessing_game.


import random # هذه مكتبة لتوليد أرقام عشوائية

def play_guessing_game():
    secret_number = random.randint(1, 20) # الكمبيوتر يختار رقمًا سريًا بين 1 و 20
    # أو يمكنك تحديد الرقم يدويًا للتجربة: secret_number = 15
    attempts_left = 5 # عدد المحاولات المسموحة

    print("أهلاً بك في لعبة تخمين الرقم السحري (بين 1 و 20)!")
    print(f"لديك {attempts_left} محاولات.") # f-string لطباعة المتغيرات داخل النص

    while attempts_left > 0:
        guess_text = input(f"المحاولة رقم {6 - attempts_left}. ما هو تخمينك؟ ")

        if not guess_text.isdigit(): # تحقق إذا كان الإدخال رقمًا
            print("الرجاء إدخال رقم صالح!")
            continue # تخطى هذه الدورة من الحلقة واطلب إدخالًا جديدًا

        guess = int(guess_text)
        attempts_left -= 1 # انقص عدد المحاولات المتبقية بواحد

        if guess == secret_number:
            print(f"يا للروعة! لقد خمنت الرقم الصحيح {secret_number} بعد {5 - attempts_left} محاولات! أنت فائز! 🎉")
            return # اخرج من الدالة لأن اللعبة انتهت بالفوز
        elif guess < secret_number:
            print("تخمينك أصغر من الرقم السحري.")
        else: # (guess > secret_number)
            print("تخمينك أكبر من الرقم السحري.")

        if attempts_left > 0:
            print(f"تبقى لديك {attempts_left} محاولات.")
        else:
            print(f"للأسف، لقد نفدت محاولاتك! الرقم السحري كان {secret_number}. حظًا أوفر في المرة القادمة! 😞")

# استدعاء دالة اللعبة لبدء اللعب
play_guessing_game()

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

🐍 محرر Python تفاعلي - اكتب الكود بنفسك
اضغط Ctrl+Enter للتشغيل
💡 اضغط "تشغيل الكود" لرؤية النتائج هنا

شغل لعبة التخمين المطورة! هل يمكنك تخمين الرقم خلال 5 محاولات؟ لاحظ كيف أن استخدام حلقة while جعل اللعبة تستمر لعدة محاولات، والدالة نظمت كل منطق اللعبة في مكان واحد.

تحدي إضافي: هل يمكنك إضافة تلميحات أكثر ذكاءً؟ مثلاً، إذا كان الفرق بين التخمين والرقم السري كبيرًا جدًا، تقول “بعيد جدًا! بارد! 🥶”، وإذا كان قريبًا، تقول “قريب جدًا! دافئ! 🔥”. أو ربما تسأل اللاعب إذا أراد اللعب مرة أخرى بعد انتهاء اللعبة (ستحتاج إلى حلقة while أخرى حول استدعاء الدالة play_guessing_game() وسؤال المستخدم إذا أراد الاستمرار).

🐍 محرر Python تفاعلي - اكتب الكود بنفسك
اضغط Ctrl+Enter للتشغيل
💡 اضغط "تشغيل الكود" لرؤية النتائج هنا

الختام: رحلتكم في عالم بايثون بدأت للتو! 🚀🌍

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

ماذا بعد؟

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

VS Code

الذي يوفر ميزات متقدمة تساعدكم في إدارة المشاريع الكبيرة.

تذكروا دائمًا: البرمجة هي أداة قوية لتحقيق أحلامكم وأفكاركم. أنتم الآن تحملون مفتاح هذا العالم السحري. استخدموه بحكمة، بإبداع، وبشغف!

رسالة أخيرة من صديقكم البرمجي: 💌

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

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

أتمنى لكم كل التوفيق في مغامراتكم البرمجية القادمة! استمروا في التألق أيها الأبطال! ✨

إلى اللقاء، ودمتم مبدعين! 👋

🔐 سجل دخولك لحفظ التقدم

سجل دخولك لحفظ تقدمك والحصول على شهادة إتمام

تسجيل الدخول