الوصول إلى عناصر المصفوفة ثنائية الأبعاد
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 13 من 78.
للوصول إلى خلية واحدة في مصفوفة ثنائية الأبعاد، استخدم فهرسين: الأول يحدّد الصف، والثاني يحدّد العمود داخل ذلك الصف. يبدأ كلاهما عند 0.
var level := [
[1, 1, 1, 1],
[1, 0, 2, 1],
[1, 1, 1, 1]
]
print(level[1][2]) # 2 (الصف 1، العمود 2)
print(level[0][0]) # 1يُرجع level[1] الصف [1, 0, 2, 1]، ثم يختار [2] الفهرس 2 من ذلك الصف. تُعَدّ الفهارس السالبة من النهاية، كما هو الحال في أي مصفوفة: level[-1][-1] هي الخلية السفلية اليمنى.
أسنِد قيمةً إلى خلية لتغييرها. عندما يلتقط اللاعب العملة، يصبح بلاطها أرضية:
level[1][2] = 0
print(level[1]) # [1, 0, 0, 1]الفهرس الواقع خارج الشبكة خطأ يوقف البرنامج: يفشل level[3][0] لأن الصفوف تمتد من 0 إلى 2. عندما تأتي الفهارس من إدخال أو من عملية حسابية، فتحقّق منها أولًا بمقارنتها بحجم الشبكة:
var row := 2
var col := 5
if row >= 0 and row < level.size() and col >= 0 and col < level[row].size():
print(level[row][col])
else:
print("Outside the map")يطبع هذا Outside the map، لأن العمود 5 غير موجود. تتوقف and عند أول شرط تكون قيمته false، لذا لا تتم قراءة level[row] إلا إذا كان الصف موجودًا.
التحدي
سهلاكتب دالة باسم get_tile لها ثلاث معاملات:
grid: مصفوفة ثنائية الأبعاد من الأعداد الصحيحة (صرّح عنها على النحوgrid: Array)row: فهرس الصفcol: فهرس العمود
تعيد القيمة الموجودة عند ذلك الصف والعمود. إذا كان row أو col خارج حدود الشبكة (أقل من 0، أو ليس أقل من عدد الصفوف أو الأعمدة)، فستعيد -1 بدلًا من ذلك. تُعد الفهارس السالبة خارج الحدود.
على سبيل المثال، تعيد get_tile([[1, 2, 3], [4, 5, 6]], 1, 2) القيمة 6، وتعيد get_tile([[1, 2], [3, 4]], 2, 1) القيمة -1.
تستدعي الاختبارات get_tile() بنفسها وتتحقق من القيمة التي تعيدها. لا تستدعِها ولا تطبع أي شيء.
جرّب بنفسك
func get_tile(grid: Array, row: int, col: int):
# اكتب الكود هنا
pass
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميستدرّب بنفسك: مترجم GDScript عبر الإنترنت