الدرس 6 من 10

المصفوفات والقوائم

هدف الدرس

مصفوفة بحجم ثابت وList<T> التي تكبر

01

الشرح

المصفوفة مجموعة خانات عددها ثابت تحدّده عند إنشائها، مثل string[] hotbar = { "سيف", "قوس", "جرعة" };. وتقرأ كل خانة برقم موضعها (index)، والعدّ يبدأ من الصفر، فالخانة الأولى hotbar[0]، وعدد الخانات hotbar.Length، وآخر موضع هو Length - 1، وإذا طلبت موضعًا خارج هذا المدى رمى البرنامج IndexOutOfRangeException. أما new int[5] فتنشئ خمس خانات قيمة كلٍّ منها صفر.

أما القائمة List<T> فتكبر وتصغر حسب حاجتك، وT هو نوع عناصرها، مثل var bag = new List<string>();. وتضيف Add عنصرًا في آخرها، وتحذف Remove أول عنصر مطابق فقط وتُرجع true إذا وجدته، وتخبرك Contains هل العنصر موجود، وتعطيك Count عدد العناصر، فاستعمل Count مع القائمة وLength مع المصفوفة. وتمرّ على عناصرها بـ foreach (string item in bag)، لكن لا تضف إليها ولا تحذف منها داخل هذه الحلقة، وإلا رمى البرنامج InvalidOperationException.

وحين تمرّر قائمة إلى دالة تصلها القائمة نفسها لا نسخة منها، فما تضيفه الدالة إليها يظهر عند من استدعاها دون الحاجة إلى ref، بخلاف int في الدرس السابق.

02

المطلوب

أكمل SlotAt(hotbar, index) لتُرجع العنصر الذي في الموضع المطلوب، أو نصًّا فارغًا "" إذا كان الموضع خارج المصفوفة. ثم أكمل AddItem(bag, item) لتضيف العنصر وتُرجع true ما دام في الحقيبة أقلّ من 5 عناصر، وإلا فلا تضيفه وتُرجع false، وUseItem(bag, item) لتحذف نسخة واحدة من العنصر وتُرجع هل كان موجودًا، وCountOf(bag, item) لتعدّ بـ foreach كم نسخة من العنصر في الحقيبة.

الفحوص

6 فحوص
  1. الدالة SlotAt تُرجع العنصر في موضعه، والعدّ من الصفر
  2. الدالة SlotAt تُرجع نصًّا فارغًا خارج المصفوفة دون أن يتوقّف البرنامج
  3. الدالة AddItem تضيف العنصر في الآخر وتُرجع true
  4. الحقيبة لا تتجاوز خمسة عناصر
  5. الدالة UseItem تحذف نسخة واحدة، وتُرجع false لعنصر ليس في الحقيبة
  6. الدالة CountOf تعدّ نسخ العنصر
03

تلميحات

0/3
دروس المسارأتممت 0 من 10

تُكتب بلغة C# ألعاب Unity وتطبيقات .NET، ولكل متغيّر فيها نوع ثابت، وتُبنى برامجها من أصناف، وتأتي معها أدوات جاهزة لأغلب ما تحتاجه.

مستواه مبتدئ، وفيه 10 دروس مجموع مدّتها ساعتان ونصف.

Program.cs
المخرجاتC# (Mono 6.6, Judge0)

يُترجَم كودك الآن ويُشغَّل على الخادم.

–/6

يُترجَم كودك الآن ويُشغَّل على الخادم.

تجد 6 فحوص في بطاقة «المطلوب».

دروس المسارأتممت 0 من 10

تُكتب بلغة C# ألعاب Unity وتطبيقات .NET، ولكل متغيّر فيها نوع ثابت، وتُبنى برامجها من أصناف، وتأتي معها أدوات جاهزة لأغلب ما تحتاجه.

مستواه مبتدئ، وفيه 10 دروس مجموع مدّتها ساعتان ونصف.