הוספה והסרה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 33 מתוך 78.
כדי להוסיף איבר, הצב true עבור המפתח שלו. הוספת איבר שכבר נמצא בקבוצה אינה משנה דבר, לכן כשצריך לדעת אם הוא חדש, בדוק קודם באמצעות has():
var inventory := {"rope": true}
if inventory.has("torch"):
print("Already have torch")
else:
inventory["torch"] = true
print("Added torch")כדי להסיר איבר, יש לקרוא ל־erase(). היא מחזירה true כשהאיבר הוסר ו־false כשהוא לא היה בקבוצה. איבר חסר לעולם אינו שגיאה:
print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }מכיוון ש־erase() מחזירה ערך בוליאני, אפשר להשתמש בה ישירות כתנאי: if inventory.erase("map"): מריצה את הבלוק שלה רק כאשר "map" היה איבר.
clear() מסירה את כל האיברים, size() סופרת אותם ו-is_empty() היא true עבור קבוצה שאין בה איברים.
אתגר
קלהתוכנית קוראת פקודות, אחת בכל שורה, עד לשורה done. כל פקודה היא add ITEM או remove ITEM. קוד הפתיחה כבר מפצל כל פקודה ל־action ול־item.
- עבור
add: אם הפריט חדש, הוסף אותו לקבוצהinventoryוהדפסAdded ITEM. אחרת, הדפסAlready have ITEM. - עבור
remove: אם הפריט נמצא בקבוצה, הסר אותו והדפסRemoved ITEM. אחרת, הדפסNo ITEM to remove.
אחרי done, הדפס Inventory: ואחריו את איברי הקבוצה כשהם מחוברים באמצעות , , או Inventory: empty כשהקבוצה ריקה. עבור הקלט:
add torch
add rope
add torch
remove map
remove rope
doneהפלט הוא:
Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torchנסו בעצמכם
extends Node
func _ready():
var inventory := {}
while true:
var command := OS.read_string_from_stdin()
if command == "done":
break
var parts := command.split(" ")
var action := parts[0]
var item := parts[1]
# הוסף או הסר את הפריט
# הדפס את רשימת הפריטים
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין