Menu
CoddyTech

מערכים של מילונים

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

כשיש לך רשומות רבות עם אותם שדות, אחסן אותן במערך של מילונים: כל איבר הוא רשומה אחת.

var enemies := [
	{"type": "slime", "hp": 30},
	{"type": "orc", "hp": 80},
	{"type": "dragon", "hp": 500}
]

אינדקס בוחר את הרשומה ומפתח בוחר את השדה: enemies[1]["type"] הוא "orc". לולאת for מספקת לך מילון אחד בכל מעבר:

for enemy in enemies:
	if enemy["hp"] >= 80:
		print(enemy["type"])
orc
dragon

הוסף רשומה באמצעות append(). כדי לשנות שדה בכל הרשומות, הקצה לו ערך דרך משתנה הלולאה. בדומה למערכים, מילונים משותפים ולא מועתקים, לכן enemy הוא המילון שבתוך המערך, והשינוי נשמר בו:

enemies.append({"type": "bat", "hp": 10})
for enemy in enemies:
	enemy["hp"] += 5
print(enemies[3]) # { "type": "bat", "hp": 15 }

כדי למצוא רשומה לפי אחד השדות שלה, עברו בלולאה והשוו. התחילו עם null, כדי שתוכלו לדעת כשלא נמצאה התאמה:

var found = null
for enemy in enemies:
	if enemy["type"] == "orc":
		found = enemy
if found == null:
	print("No orc")
else:
	print(found["hp"]) # 85

print() מציגה את כל המערך עם כל המילונים שבו: [{ "type": "slime", "hp": 35 }, ...].

challenge icon

אתגר

קל

בנו טבלת דירוג. התוכנית קוראת מספר שלם n, ואז n שורות, שבכל אחת מהן מופיעים שם של שחקן וניקוד, מופרדים בפסיק, כמו Mia,95.

  1. עבור כל שורה, הוסיפו למערך players מילון עם המפתחות "name" (השם) ו-"score" (הניקוד כמספר int).
  2. הדפיסו את המערך.
  3. הדפיסו את Best: , את שם השחקן עם הניקוד הגבוה ביותר ואת הניקוד בסוגריים. אם לשני שחקנים יש את הניקוד הגבוה ביותר, הדפיסו את הראשון.

עבור הקלטים 3, Mia,95, Leo,80 ו-Ana,97, הפלט הוא:

[{ "name": "Mia", "score": 95 }, { "name": "Leo", "score": 80 }, { "name": "Ana", "score": 97 }]
Best: Ana (97)

נסו בעצמכם

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	var players := []

	# קרא את n השחקנים לתוך המערך

	# הדפס את המערך ואת השחקן הטוב ביותר
	pass
quiz iconבחנו את עצמכם

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

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

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