מערכים של מילונים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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"]) # 85print() מציגה את כל המערך עם כל המילונים שבו: [{ "type": "slime", "hp": 35 }, ...].
אתגר
קלבנו טבלת דירוג. התוכנית קוראת מספר שלם n, ואז n שורות, שבכל אחת מהן מופיעים שם של שחקן וניקוד, מופרדים בפסיק, כמו Mia,95.
- עבור כל שורה, הוסיפו למערך
playersמילון עם המפתחות"name"(השם) ו-"score"(הניקוד כמספרint). - הדפיסו את המערך.
- הדפיסו את
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
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין