نوع العمل:
مشروع تطبيق متعدد الألعاب مبني باستخدام البرمجة الكائنية (OOP) بلغة C++. يتيح للمستخدمين لعب مجموعة من الألعاب المختلفة ضمن منصة واحدة، مع إدارة جميع الألعاب عبر كائن واحد (GameManager) بطريقة مرنة وقابلة للتوسيع.
ميزات المشروع:
هيكلية موحدة وقابلة للتوسيع: كل لعبة مكوّنة من GameBoard و GameUI، مما يسمح بتشغيل أي لعبة بدون تعديل الكود الأساسي.
تعدد أشكال (Polymorphism): نفس GameManager قادر على تشغيل جميع الألعاب بشكل تلقائي.
التجريد (Abstraction): واجهة المستخدم (UI) لا تعرف منطق اللعبة الداخلي، مما يسهل صيانة المشروع.
إعادة استخدام الكود والوراثة (Inheritance): جميع اللوحات ترث من Board<T> وجميع الواجهات ترث من UI<T>.
التغليف (Encapsulation): البيانات الداخلية وقواعد اللعبة مخفية ويمكن الوصول إليها فقط من خلال الدوال العامة.
طريقة التنفيذ:
تصميم أصناف أساسية مشتركة (Board<T>, UI<T>, Player<T>, Move<T>, GameManager<T>).
لكل لعبة، إنشاء:
GameBoard (يرث من Board<T> ويحتوي على منطق اللعبة).
GameUI (يرث من UI<T> ويتولى التفاعل مع المستخدم).
استخدام الدوال الافتراضية (Virtual Functions) لإعادة تعريف وظائف كل لعبة (update_board(), is_win(), is_draw(), get_move()).
تشغيل اللعبة عبر GameManager الذي يتناوب بين اللاعبين، يقرأ الحركات، ويقرر حالات الفوز أو التعادل.