🎮 مشروع: لعبة تخمين الرقم
ما الذي سنبنيه؟
لعبة كلاسيكية: الحاسوب يختار رقماً عشوائياً واللاعب يحاول تخمينه:
🎮 لعبة تخمين الرقم
═══════════════════════
اخترت رقماً بين 1 و 100...
أدخل تخمينك: 50
⬆️ أكبر من 50!
أدخل تخمينك: 75
⬇️ أصغر من 75!
أدخل تخمينك: 62
🎉 صحيح! الرقم هو 62
أصبت في 3 محاولات!ما ستتعلمه
- ✅ توليد أرقام عشوائية
- ✅ حلقات اللعب (game loop)
- ✅ التحقق من صحة الإدخال
- ✅ نظام النقاط والمستويات
- ✅ تقديم تلميحات ذكية
الخطوة 1: توليد رقم عشوائي
نبدأ بالأساسيات — توليد رقم عشوائي:
sad
# ═══════════════════════════════════════
# لعبة تخمين الرقم — الهيكل الأساسي
# ═══════════════════════════════════════
من رياضيات استورد عشوائي
# توليد رقم عشوائي بين 1 و 100
متغير الرقم_السري = عشوائي(1، 100)
اطبع_سطر("🎮 لعبة تخمين الرقم")
اطبع_سطر("اخترت رقماً بين 1 و 100...")
اطبع_سطر("الرقم السري (للاختبار): " + الرقم_السري)جرّب: شغّل الكود عدة مرات — سترى أرقاماً مختلفة كل مرة!
الخطوة 2: حلقة اللعب الأساسية
الآن نُضيف حلقة التخمين:
sad
من رياضيات استورد عشوائي
متغير الرقم_السري = عشوائي(1، 100)
متغير المحاولات = 0
متغير وجده = خطأ
اطبع_سطر("🎮 لعبة تخمين الرقم")
اطبع_سطر("اخترت رقماً بين 1 و 100...")
اطبع_سطر("")
بينما (ليس وجده)
اطبع("أدخل تخمينك: ")
متغير تخمين = رقم(اقرأ())
المحاولات = المحاولات + 1
إذا (تخمين < الرقم_السري)
اطبع_سطر("⬆️ أكبر من " + تخمين + "!")
وإلا إذا (تخمين > الرقم_السري)
اطبع_سطر("⬇️ أصغر من " + تخمين + "!")
وإلا
وجده = صحيح
اطبع_سطر("🎉 صحيح! الرقم هو " + الرقم_السري)
اطبع_سطر("أصبت في " + المحاولات + " محاولات!")
نهاية
نهايةالخطوة 3: التحقق من صحة الإدخال
نتأكد أن المستخدم يُدخل رقماً صحيحاً:
sad
# === دالة قراءة رقم صحيح ===
دالة اقرأ_رقم(رسالة، حد_أدنى، حد_أقصى)
بينما (صحيح)
اطبع(رسالة)
متغير إدخال = اقرأ()
# محاولة تحويل النص إلى رقم
حاول
متغير ن = رقم(إدخال)
إذا (ن < حد_أدنى أو ن > حد_أقصى)
اطبع_سطر(م"❌ أدخل رقماً بين {حد_أدنى} و {حد_أقصى}!")
استمر
نهاية
ارجع ن
امسك خ
اطبع_سطر("❌ هذا ليس رقماً صحيحاً!")
نهاية
نهاية
نهاية
# استخدام الدالة
متغير تخمين = اقرأ_رقم("أدخل تخمينك: "، 1، 100)الخطوة 4: نظام المستويات
نُضيف مستويات صعوبة مختلفة:
sad
# === تعداد المستويات ===
تعداد مستوى
سهل
متوسط
صعب
نهاية
# === إعدادات كل مستوى ===
دالة إعدادات_المستوى(م)
طابق (م)
عندما مستوى.سهل:
ارجع {"نطاق": 50، "محاولات": 15، "تلميحات": صحيح}
عندما مستوى.متوسط:
ارجع {"نطاق": 100، "محاولات": 10، "تلميحات": صحيح}
عندما مستوى.صعب:
ارجع {"نطاق": 200، "محاولات": 7، "تلميحات": خطأ}
نهاية
نهاية
# === اختيار المستوى ===
دالة اختر_المستوى()
اطبع_سطر("")
اطبع_سطر("اختر مستوى الصعوبة:")
اطبع_سطر("1. 🟢 سهل (1-50، 15 محاولة، تلميحات)")
اطبع_سطر("2. 🟡 متوسط (1-100، 10 محاولات، تلميحات)")
اطبع_سطر("3. 🔴 صعب (1-200، 7 محاولات، بدون تلميحات)")
متغير اختيار = اقرأ_رقم("اختيارك: "، 1، 3)
طابق (اختيار)
عندما 1: ارجع مستوى.سهل
عندما 2: ارجع مستوى.متوسط
عندما 3: ارجع مستوى.صعب
نهاية
نهايةالخطوة 5: تلميحات ذكية
نُضيف تلميحات تساعد اللاعب:
sad
# === تلميح بناءً على المسافة ===
دالة أعطِ_تلميح(تخمين، السري)
متغير فرق = السري - تخمين
إذا (فرق < 0)
فرق = -فرق # القيمة المطلقة
نهاية
إذا (فرق <= 5)
اطبع_سطر("🔥 حار جداً! قريب جداً!")
وإلا إذا (فرق <= 15)
اطبع_سطر("🌡️ دافئ... اقتربت!")
وإلا إذا (فرق <= 30)
اطبع_سطر("❄️ بارد...")
وإلا
اطبع_سطر("🥶 بارد جداً!")
نهاية
نهايةالخطوة 6: نظام النقاط
نحسب النقاط بناءً على الأداء:
sad
# === حساب النقاط ===
دالة احسب_النقاط(المحاولات، الحد_الأقصى، المستوى)
# النقاط الأساسية حسب المستوى
متغير أساس = 0
طابق (المستوى)
عندما مستوى.سهل: أساس = 100
عندما مستوى.متوسط: أساس = 200
عندما مستوى.صعب: أساس = 500
نهاية
# مضاعف بناءً على سرعة الإجابة
متغير مضاعف = (الحد_الأقصى - المحاولات + 1) / الحد_الأقصى
ارجع رقم(أساس * مضاعف)
نهاية
# === عرض النتيجة ===
دالة اعرض_النتيجة(النقاط، المحاولات)
اطبع_سطر("")
اطبع_سطر("╔══════════════════════════╗")
اطبع_سطر("║ 🏆 النتيجة النهائية ║")
اطبع_سطر("╠══════════════════════════╣")
اطبع_سطر(م"║ المحاولات: {المحاولات} ║")
اطبع_سطر(م"║ النقاط: {النقاط} ║")
إذا (النقاط >= 400)
اطبع_سطر("║ التقييم: ⭐⭐⭐ ممتاز! ║")
وإلا إذا (النقاط >= 200)
اطبع_سطر("║ التقييم: ⭐⭐ جيد جداً ║")
وإلا
اطبع_سطر("║ التقييم: ⭐ حاول مجدداً ║")
نهاية
اطبع_سطر("╚══════════════════════════╝")
نهايةالكود الكامل
📄 انقر لعرض الكود الكامل
sad
# ═══════════════════════════════════════════════════════════════
# مشروع: لعبة تخمين الرقم
# الوصف: لعبة كلاسيكية مع مستويات صعوبة ونظام نقاط
# ═══════════════════════════════════════════════════════════════
من رياضيات استورد عشوائي
# === تعداد المستويات ===
تعداد مستوى
سهل
متوسط
صعب
نهاية
# ═══════════════════════════════════════
# دوال مساعدة
# ═══════════════════════════════════════
دالة اقرأ_رقم(رسالة، حد_أدنى، حد_أقصى)
بينما (صحيح)
اطبع(رسالة)
متغير إدخال = اقرأ()
حاول
متغير ن = رقم(إدخال)
إذا (ن < حد_أدنى أو ن > حد_أقصى)
اطبع_سطر(م"❌ أدخل رقماً بين {حد_أدنى} و {حد_أقصى}!")
استمر
نهاية
ارجع ن
امسك خ
اطبع_سطر("❌ هذا ليس رقماً صحيحاً!")
نهاية
نهاية
نهاية
دالة إعدادات_المستوى(م)
طابق (م)
عندما مستوى.سهل:
ارجع {"نطاق": 50، "محاولات": 15، "تلميحات": صحيح}
عندما مستوى.متوسط:
ارجع {"نطاق": 100، "محاولات": 10، "تلميحات": صحيح}
عندما مستوى.صعب:
ارجع {"نطاق": 200، "محاولات": 7، "تلميحات": خطأ}
نهاية
نهاية
دالة اختر_المستوى()
اطبع_سطر("")
اطبع_سطر("اختر مستوى الصعوبة:")
اطبع_سطر("1. 🟢 سهل (1-50، 15 محاولة)")
اطبع_سطر("2. 🟡 متوسط (1-100، 10 محاولات)")
اطبع_سطر("3. 🔴 صعب (1-200، 7 محاولات)")
متغير اختيار = اقرأ_رقم("اختيارك: "، 1، 3)
طابق (اختيار)
عندما 1: ارجع مستوى.سهل
عندما 2: ارجع مستوى.متوسط
عندما 3: ارجع مستوى.صعب
نهاية
نهاية
دالة أعطِ_تلميح(تخمين، السري)
متغير فرق = السري - تخمين
إذا (فرق < 0)
فرق = -فرق
نهاية
إذا (فرق <= 5)
اطبع_سطر("🔥 حار جداً!")
وإلا إذا (فرق <= 15)
اطبع_سطر("🌡️ دافئ...")
وإلا إذا (فرق <= 30)
اطبع_سطر("❄️ بارد...")
وإلا
اطبع_سطر("🥶 بارد جداً!")
نهاية
نهاية
دالة احسب_النقاط(المحاولات، الحد_الأقصى، م)
متغير أساس = 0
طابق (م)
عندما مستوى.سهل: أساس = 100
عندما مستوى.متوسط: أساس = 200
عندما مستوى.صعب: أساس = 500
نهاية
متغير مضاعف = (الحد_الأقصى - المحاولات + 1) / الحد_الأقصى
ارجع رقم(أساس * مضاعف)
نهاية
دالة اعرض_النتيجة(النقاط، المحاولات)
اطبع_سطر("")
اطبع_سطر("╔══════════════════════════╗")
اطبع_سطر("║ 🏆 النتيجة النهائية ║")
اطبع_سطر("╠══════════════════════════╣")
اطبع_سطر(م"║ المحاولات: {المحاولات} ║")
اطبع_سطر(م"║ النقاط: {النقاط} ║")
إذا (النقاط >= 400)
اطبع_سطر("║ التقييم: ⭐⭐⭐ ممتاز! ║")
وإلا إذا (النقاط >= 200)
اطبع_سطر("║ التقييم: ⭐⭐ جيد جداً ║")
وإلا
اطبع_سطر("║ التقييم: ⭐ حاول مجدداً ║")
نهاية
اطبع_سطر("╚══════════════════════════╝")
نهاية
# ═══════════════════════════════════════
# حلقة اللعبة الرئيسية
# ═══════════════════════════════════════
دالة العب_جولة(م)
متغير إعدادات = إعدادات_المستوى(م)
متغير نطاق = إعدادات["نطاق"]
متغير حد_المحاولات = إعدادات["محاولات"]
متغير تلميحات = إعدادات["تلميحات"]
متغير الرقم_السري = عشوائي(1، نطاق)
متغير المحاولات = 0
اطبع_سطر("")
اطبع_سطر(م"🎯 اخترت رقماً بين 1 و {نطاق}")
اطبع_سطر(م"لديك {حد_المحاولات} محاولات!")
اطبع_سطر("")
بينما (المحاولات < حد_المحاولات)
متغير متبقي = حد_المحاولات - المحاولات
متغير تخمين = اقرأ_رقم(م"[{متبقي}] تخمينك: "، 1، نطاق)
المحاولات = المحاولات + 1
إذا (تخمين == الرقم_السري)
اطبع_سطر("")
اطبع_سطر(م"🎉 صحيح! الرقم هو {الرقم_السري}!")
متغير النقاط = احسب_النقاط(المحاولات، حد_المحاولات، م)
اعرض_النتيجة(النقاط، المحاولات)
ارجع صحيح
وإلا إذا (تخمين < الرقم_السري)
اطبع_سطر(م"⬆️ أكبر من {تخمين}!")
وإلا
اطبع_سطر(م"⬇️ أصغر من {تخمين}!")
نهاية
# تلميح إضافي
إذا (تلميحات)
أعطِ_تلميح(تخمين، الرقم_السري)
نهاية
نهاية
# انتهت المحاولات
اطبع_سطر("")
اطبع_سطر(م"😔 للأسف! الرقم كان {الرقم_السري}")
ارجع خطأ
نهاية
# ═══════════════════════════════════════
# البرنامج الرئيسي
# ═══════════════════════════════════════
دالة رئيسية()
اطبع_سطر("╔══════════════════════════════╗")
اطبع_سطر("║ 🎮 لعبة تخمين الرقم ║")
اطبع_سطر("╚══════════════════════════════╝")
متغير يلعب = صحيح
بينما (يلعب)
متغير المستوى = اختر_المستوى()
العب_جولة(المستوى)
اطبع_سطر("")
اطبع("هل تريد اللعب مجدداً؟ (ن/لا): ")
متغير إجابة = اقرأ()
إذا (إجابة == "لا" أو إجابة == "ل")
يلعب = خطأ
نهاية
نهاية
اطبع_سطر("")
اطبع_سطر("شكراً للعب! 👋")
نهاية
# تشغيل اللعبة
رئيسية()🏆 تحديات إضافية
- وضع ثنائي اللاعبين — لاعب يختار رقماً والآخر يخمّن
- أرقام سالبة — وسّع النطاق ليشمل الأرقام السالبة
- جدول الأرقام القياسية — احفظ أفضل النتائج في ملف
- نمط السباق — من يخمّن أسرع؟
- تلميحات ذكية — "الرقم زوجي" أو "الرقم يقبل القسمة على 5"
ماذا تعلمت؟
- ✅ توليد أرقام عشوائية
عشوائي() - ✅ حلقات اللعب مع شرط خروج
- ✅ التحقق من صحة الإدخال مع
حاول/امسك - ✅ التعدادات
تعداد - ✅ الخرائط للإعدادات
{"مفتاح": قيمة} - ✅ نصوص منسقة
م"..."