Menu
CoddyTech

יסודות המערכים הדו־ממדיים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 12 מתוך 78.

מערך דו־ממדי מאחסן ערכים בשורות ובעמודות, כמו טבלה או האריחים של מפת משחק. ב-GDScript, מערך דו־ממדי הוא מערך שהאיברים שלו הם מערכים: כל מערך פנימי הוא שורה אחת.

var level := [
	[1, 1, 1, 1],
	[1, 0, 2, 1],
	[1, 1, 1, 1]
]

במפה הזאת, 0 הוא רצפה, 1 הוא קיר ו-2 הוא מטבע. כתיבת שורה אחת בכל שורה שומרת על קריאות הרשת, ו-GDScript מקבל גם את כל הערך המילולי בשורה אחת.

print() מציגה מערך דו־ממדי בשורה אחת, כשכל שורה נמצאת בתוך סוגריים מרובעים משלה:

print(level)
[[1, 1, 1, 1], [1, 0, 2, 1], [1, 1, 1, 1]]

size() במערך החיצוני סופר את השורות. level[0] היא השורה הראשונה, מערך רגיל, ולכן level[0].size() סופר את העמודות:

print(level.size()) # 3 שורות
print(level[0].size()) # 4 עמודות

לולאת for על המערך החיצוני נותנת לך שורה אחת בכל איטרציה:

for row in level:
	print(row)
[1, 1, 1, 1]
[1, 0, 2, 1]
[1, 1, 1, 1]

התאים יכולים להיות מכל סוג: [["X", "O"], ["O", "X"]] היא רשת של מחרוזות. אפשר גם להתחיל ממערך ריק ולהוסיף שורות שלמות באמצעות append():

var board := []
board.append(["X", "O", "X"])
board.append(["O", "X", "O"])
print(board.size()) # 2
challenge icon

אתגר

קל

בנו מפה של מבוך קטן. צרו מערך דו־ממדי בשם level עם 4 השורות האלה, בסדר הזה:

1 1 1 1 1
1 0 2 0 1
1 0 1 3 1
1 1 1 1 1

כל שורה היא מערך של 5 מספרים. לאחר מכן הדפיסו את מספר השורות ואת מספר העמודות באמצעות size(), לפני שהלולאה הנתונה מדפיסה את השורות. הפלט חייב להיות:

Rows: 4
Columns: 5
[1, 1, 1, 1, 1]
[1, 0, 2, 0, 1]
[1, 0, 1, 3, 1]
[1, 1, 1, 1, 1]

נסו בעצמכם

extends Node

func _ready():
	# החליפו את [] במפת המבוך
	var level := []

	# הדפיסו כאן את מספר השורות ואת מספר העמודות

	for row in level:
		print(row)
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר GDScript אונליין