You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ar/6-space-game/6-end-condition/assignment.md

171 lines
11 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "232d592791465c1678cab3a2bb6cd3e8",
"translation_date": "2025-10-22T14:27:01+00:00",
"source_file": "6-space-game/6-end-condition/assignment.md",
"language_code": "ar"
}
-->
# بناء لعبة نموذجية
## نظرة عامة على المهمة
الآن بعد أن أتقنت شروط نهاية اللعبة ووظيفة إعادة التشغيل في لعبة الفضاء الخاصة بك، حان الوقت لتطبيق هذه المفاهيم على تجربة لعب جديدة تمامًا. ستقوم بتصميم وبناء لعبتك الخاصة التي تُظهر أنماطًا مختلفة لشروط النهاية وآليات إعادة التشغيل.
تتحدى هذه المهمة تفكيرك الإبداعي في تصميم الألعاب مع ممارسة المهارات التقنية التي تعلمتها. ستستكشف سيناريوهات مختلفة للفوز والهزيمة، وتنفذ تقدم اللاعب، وتُنشئ تجارب إعادة تشغيل ممتعة.
## متطلبات المشروع
### ميزات اللعبة الأساسية
يجب أن تتضمن لعبتك العناصر الأساسية التالية:
**تنوع شروط النهاية**: قم بتنفيذ طريقتين مختلفتين على الأقل يمكن أن تنتهي بهما اللعبة:
- **الفوز بناءً على النقاط**: يصل اللاعب إلى درجة مستهدفة أو يجمع عناصر محددة.
- **الهزيمة بناءً على الحياة**: يخسر اللاعب جميع الأرواح المتاحة أو نقاط الصحة.
- **إكمال الهدف**: يتم هزيمة جميع الأعداء، جمع عناصر محددة، أو تحقيق أهداف معينة.
- **بناءً على الوقت**: تنتهي اللعبة بعد مدة محددة أو عند انتهاء العد التنازلي.
**وظيفة إعادة التشغيل**:
- **مسح حالة اللعبة**: إزالة جميع كائنات اللعبة السابقة وإعادة تعيين المتغيرات.
- **إعادة تهيئة الأنظمة**: البدء من جديد بإحصائيات جديدة للاعب، أعداء، وأهداف.
- **تحكم سهل الاستخدام**: تقديم تعليمات واضحة لإعادة تشغيل اللعبة.
**ردود فعل اللاعب**:
- **رسائل الفوز**: الاحتفال بإنجازات اللاعب بتعليقات إيجابية.
- **رسائل الهزيمة**: تقديم رسائل مشجعة تحفز على إعادة اللعب.
- **مؤشرات التقدم**: عرض النقاط الحالية، الأرواح، أو حالة الهدف.
### أفكار الألعاب والإلهام
اختر أحد هذه المفاهيم أو ابتكر فكرتك الخاصة:
#### 1. لعبة مغامرة نصية
قم بإنشاء مغامرة تعتمد على النص مع آليات قتال:
```
Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****
```
**الميزات الرئيسية التي يجب تنفيذها:**
- **قتال يعتمد على الأدوار** مع خيارات هجوم مختلفة.
- **نقاط الصحة** لكل من اللاعب والأعداء.
- **نظام الجرد** لجمع العملات أو العناصر.
- **أنواع متعددة من الأعداء** بمستويات صعوبة مختلفة.
- **شرط الفوز** عند هزيمة جميع الأعداء.
#### 2. لعبة جمع العناصر
- **الهدف**: جمع عناصر محددة مع تجنب العقبات.
- **شروط النهاية**: الوصول إلى عدد معين من العناصر أو خسارة جميع الأرواح.
- **التقدم**: تصبح العناصر أصعب للوصول إليها مع استمرار اللعبة.
#### 3. لعبة ألغاز
- **الهدف**: حل ألغاز تزداد صعوبة تدريجيًا.
- **شروط النهاية**: إكمال جميع المستويات أو نفاد الحركات/الوقت.
- **إعادة التشغيل**: العودة إلى المستوى الأول مع مسح التقدم.
#### 4. لعبة الدفاع
- **الهدف**: حماية قاعدتك من موجات الأعداء.
- **شروط النهاية**: النجاة من جميع الموجات (الفوز) أو تدمير القاعدة (الهزيمة).
- **التقدم**: تزداد صعوبة وعدد موجات الأعداء.
## إرشادات التنفيذ
### البدء
1. **خطط لتصميم لعبتك**:
- ارسم دورة اللعب الأساسية.
- حدد شروط النهاية بوضوح.
- حدد البيانات التي تحتاج إلى إعادة تعيين عند إعادة التشغيل.
2. **قم بإعداد هيكل مشروعك**:
```
my-game/
├── index.html
├── style.css
├── game.js
└── README.md
```
3. **أنشئ دورة اللعب الأساسية**:
- تهيئة حالة اللعبة.
- معالجة إدخال المستخدم.
- تحديث منطق اللعبة.
- التحقق من شروط النهاية.
- عرض الحالة الحالية.
### المتطلبات التقنية
**استخدام JavaScript الحديث**:
- استخدم `const` و `let` لتصريح المتغيرات.
- استخدم الدوال السهمية عند الاقتضاء.
- نفذ ميزات ES6+ مثل القوالب النصية والتفكيك.
**هيكلية تعتمد على الأحداث**:
- أنشئ معالجات أحداث لتفاعلات المستخدم.
- نفذ تغييرات حالة اللعبة من خلال الأحداث.
- استخدم مستمعي الأحداث لوظيفة إعادة التشغيل.
**ممارسات كتابة الكود النظيف**:
- اكتب دوال ذات مسؤوليات محددة.
- استخدم أسماء متغيرات ودوال وصفية.
- أضف تعليقات تشرح منطق اللعبة والقواعد.
- نظم الكود في أقسام منطقية.
## متطلبات التسليم
### العناصر المطلوبة
1. **ملفات اللعبة الكاملة**: جميع ملفات HTML، CSS، وJavaScript اللازمة لتشغيل اللعبة.
2. **README.md**: وثائق تشرح:
- كيفية لعب اللعبة.
- شروط النهاية التي تم تنفيذها.
- تعليمات إعادة التشغيل.
- أي ميزات أو آليات خاصة.
3. **تعليقات الكود**: تفسيرات واضحة لمنطق اللعبة والخوارزميات.
### قائمة التحقق للاختبار
قبل التسليم، تحقق من أن لعبتك:
- [ ] **تعمل بدون أخطاء** في وحدة التحكم بالمتصفح.
- [ ] **تنفذ شروط نهاية متعددة** كما هو محدد.
- [ ] **تُعاد تشغيلها بشكل صحيح** مع إعادة تعيين الحالة.
- [ ] **تقدم ردود فعل واضحة** للاعبين حول حالة اللعبة.
- [ ] **تستخدم JavaScript الحديث** وأفضل الممارسات.
- [ ] **تتضمن وثائق شاملة** في README.md.
## معايير التقييم
| المعايير | ممتاز (4) | جيد (3) | متوسط (2) | مبتدئ (1) |
|----------|-----------|---------|-----------|-----------|
| **وظائف اللعبة** | لعبة كاملة مع شروط نهاية متعددة، إعادة تشغيل سلسة، وتجربة لعب مصقولة | لعبة كاملة مع شروط نهاية أساسية وآلية إعادة تشغيل وظيفية | لعبة جزئية مع بعض شروط النهاية، قد تحتوي إعادة التشغيل على مشاكل بسيطة | لعبة غير مكتملة مع وظائف محدودة وأخطاء كبيرة |
| **جودة الكود** | كود نظيف ومنظم باستخدام ممارسات JavaScript الحديثة، تعليقات شاملة، وهيكل ممتاز | تنظيم جيد للكود مع صياغة حديثة، تعليقات كافية، وهيكل واضح | تنظيم أساسي للكود مع بعض الممارسات الحديثة، تعليقات قليلة | تنظيم ضعيف للكود، صياغة قديمة، نقص في التعليقات والهيكل |
| **تجربة المستخدم** | تجربة لعب بديهية مع تعليمات واضحة، ردود فعل ممتازة، وتجربة نهاية/إعادة تشغيل ممتعة | تجربة لعب جيدة مع تعليمات وردود فعل كافية، نهاية/إعادة تشغيل وظيفية | تجربة لعب أساسية مع تعليمات قليلة، ردود فعل محدودة حول حالة اللعبة | تجربة لعب مربكة مع تعليمات غير واضحة وردود فعل ضعيفة |
| **التنفيذ التقني** | يظهر إتقانًا لمفاهيم تطوير الألعاب، معالجة الأحداث، وإدارة الحالة | يظهر فهمًا قويًا لمفاهيم الألعاب مع تنفيذ جيد | فهم أساسي مع تنفيذ مقبول | فهم محدود مع تنفيذ ضعيف |
| **التوثيق** | README شامل مع تعليمات واضحة، كود موثق جيدًا، وأدلة اختبار شاملة | توثيق جيد مع تعليمات واضحة وتعليقات كافية على الكود | توثيق أساسي مع تعليمات قليلة | توثيق ضعيف أو مفقود |
### مقياس التقييم
- **ممتاز (16-20 نقطة)**: يتجاوز التوقعات مع ميزات إبداعية وتنفيذ مصقول.
- **جيد (12-15 نقطة)**: يلبي جميع المتطلبات مع تنفيذ قوي.
- **متوسط (8-11 نقطة)**: يلبي معظم المتطلبات مع مشاكل بسيطة.
- **مبتدئ (4-7 نقاط)**: يلبي بعض المتطلبات ولكنه يحتاج إلى تحسين كبير.
## موارد تعليمية إضافية
- [دليل تطوير الألعاب من MDN](https://developer.mozilla.org/en-US/docs/Games)
- [دروس تطوير الألعاب باستخدام JavaScript](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
- [وثائق Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
- [مبادئ تصميم الألعاب](https://www.gamasutra.com/blogs/)
> 💡 **نصيحة احترافية**: ابدأ ببساطة وأضف الميزات تدريجيًا. اللعبة البسيطة المصقولة أفضل من اللعبة المعقدة المليئة بالأخطاء!
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.