تفاصيل العمل

وصف مشروع: لعبة باك-مان (Pac-Man) باستخدام هياكل البيانات

هذا المشروع عبارة عن تطبيق عملي لمفاهيم هياكل البيانات والخوارزميات من خلال تطوير نسخة من لعبة باك-مان الكلاسيكية. الهدف الأساسي هو تصميم وبناء عالم اللعبة، والتحكم في حركة الأعداء، وتسجيل أفضل النتائج، مع الاعتماد على هياكل بيانات فعالة لكل جزء من اللعبة.

الميزات الرئيسية للعبة

عالم اللعبة (Game World):

تم بناء عالم اللعبة كخريطة مكونة من عوائق وطرق حرة تحتوي على نقاط طعام يجب على اللاعب التقاطها. تم تمثيل هذه الخريطة باستخدام مصفوفة ثنائية الأبعاد (2D Array)، حيث تُمثل كل خلية في المصفوفة جزءًا من الخريطة (جدار، طريق فارغ، نقطة طعام، لاعب، أو عدو). هذا الهيكل البياني بسيط وفعّال للوصول السريع إلى أي جزء من الخريطة وتحديثه.

مستويات الصعوبة (Difficulty Levels):

توفر اللعبة ثلاثة مستويات صعوبة مختلفة، كل مستوى بخريطة وسلوك أعداء مختلف لزيادة التحدي:

المستوى السهل (Easy): يتحرك الأعداء بشكل عشوائي تمامًا في الطرق المتاحة.

المستوى المتوسط (Medium): تزداد سرعة الأعداء مع الحفاظ على حركتهم العشوائية، مما يجعل تجنبهم أكثر صعوبة.

المستوى الصعب (Hard): هنا يكمن التحدي الأكبر. يستخدم الأعداء خوارزمية البحث بالعرض أولاً (Breadth-First Search - BFS) لمطاردة اللاعب. تعتمد هذه الخوارزمية على هيكل بيانات الطابور (Queue) لإيجاد أقصر مسار بين العدو واللاعب في كل لحظة، مما يجعلهم أذكياء وشديدي الخطورة.

عرض أعلى النتائج (High Scores):

تحتفظ اللعبة بقائمة بأفضل 3 نتائج حققها اللاعبون. تم استخدام قائمة مرتبة (Sorted List/Array) لتخزين هذه النتائج. بعد انتهاء كل لعبة، يتم مقارنة النتيجة الجديدة بالنتائج المسجلة، وإذا كانت من بين الأعلى، يتم إدراجها في القائمة مع الحفاظ على الترتيب التنازلي.

هياكل البيانات المستخدمة

المصفوفة ثنائية الأبعاد (2D Array): لتمثيل خريطة اللعبة وتخزين أماكن الجدران، الطرق، الطعام، والكيانات المختلفة.

الطابور (Queue): وهو أساسي لتطبيق خوارزمية BFS التي توجه الأعداء نحو اللاعب في المستوى الصعب.

القائمة أو المصفوفة المرتبة (Sorted List/Array): لتسجيل وعرض قائمة أفضل النتائج بكفاءة.

يُظهر هذا المشروع كيف يمكن استخدام هياكل البيانات الأساسية لبناء أنظمة معقدة وميزات ذكية في تطبيقات عملية مثل تطوير الألعاب.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
1
تاريخ الإضافة
المهارات