شارك المقالة

في لعبة تخمين الرقم باستخدام Python 3 يختار الحاسوب عددًا عشوائيًا ويعطي اللاعب تلميحًا بعد كل محاولة. هذه ليست قراءة لما يفكر فيه المستخدم، بل مقارنة التخمين بعدد مخزن. نستخدم input بدل raw_input الذي يخص Python 2، وننهي الحلقة عند المطابقة أو اختيار الخروج.

الكود الكامل باستخدام Python 3

import random

def play(secret=None):
    if secret is None:
        secret = random.randint(1, 99)
    attempts = 0
    while True:
        text = input("Guess 1..99 (q to quit): ").strip()
        if text.lower() == "q":
            print("Goodbye.")
            return
        try:
            guess = int(text)
        except ValueError:
            print("Enter an integer.")
            continue
        if not 1 <= guess <= 99:
            print("Use a number from 1 to 99.")
            continue
        attempts += 1
        if guess < secret:
            print("Too low.")
        elif guess > secret:
            print("Too high.")
        else:
            print(f"Correct in {attempts} attempts.")
            return

if __name__ == "__main__":
    play()

شرح المقارنة والحلقة

تختار randint عددًا بين 1 و99 شاملًا الطرفين. نقارن العدد الذي أدخله اللاعب بالمتغير secret نفسه، ولا نقارنه بالنص “guess”. تكرر while True الطلب حتى نصل إلى return عند الفوز أو الخروج. المحاولة غير الرقمية أو خارج المجال لا تزيد عداد المحاولات الصحيحة.

اختبار اللعبة دون الاعتماد على الحظ

يمكن استدعاء play(42) أثناء الاختبار لتثبيت الرقم المطلوب. أدخل 10 فستظهر Too low، ثم 70 فستظهر Too high، ثم 42 للفوز في ثلاث محاولات. أدخل q للخروج دون الحاجة إلى معرفة الحل. اختبار الفروع بهذه الطريقة أوضح من تكرار اللعبة وانتظار رقم عشوائي مناسب.

تطوير اللعبة

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

الصور والفيديو المرفقان بالدرس

مصادر المثال السابق: pythonforbeginners

شاهد أيضًا
مقالات ذات صلة
🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع