גישה לאיברים במערך דו־ממדי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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]) # 1level[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
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמיד3מערכים רב־ממדיים
יסודות המערכים הדו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום – מערכים דו־ממדייםמערכים משונניםתבניות נפוצות במערכים דו־ממדייםסיכום – לוח משחקתרגלו בעצמכם: קומפיילר GDScript אונליין