פיצול ואיחוד
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 4 מתוך 78.
כבר פיצלת מחרוזות באמצעות split() וחיברת מערכים באמצעות join(). שתי הפעולות יכולות לעשות יותר.
החלקים של split() הם מחרוזות, בדיוק כפי שהם מופיעים בין המפרידים, כולל הרווחים. נקו או המירו כל חלק לפני השימוש בו. אפשר להחליף איבר בתוצאה באמצעות האינדקס שלו:
var items := "sword, shield ,bow".split(",")
print(items)
for i in range(items.size()):
items[i] = items[i].strip_edges()
print(items)["sword", " shield ", "bow"]
["sword", "shield", "bow"]הארגומנט השני של split() הוא זה שפגשת קודם: true שומר חלקים ריקים, false משמיט אותם. ארגומנט שלישי מגביל את מספר החיתוכים. split(" ", true, 1) חותך רק ברווח הראשון, שמפריד בין פקודה לשאר השורה:
print("say hello there".split(" ", true, 1))["say", "hello there"]rsplit() פועלת באותו אופן, אך סופרת את החיתוכים מימין, כך שהיא יכולה לחתוך בנקודה האחרונה של שם קובץ:
print("save.backup.json".rsplit(".", true, 1))["save.backup", "json"]join() מקבלת גם מערך של מספרים וממירה כל אחד מהם לטקסט: ", ".join([3, 1, 2]) היא "3, 1, 2".
אתגר
קלהתוכנית קוראת שורה אחת של מילים המופרדות בפסיקים לתוך line. ייתכנו רווחים סביב המילים, למשל red, green ,blue.
יש להדפיס שלוש שורות:
- מספר המילים
- המילים ללא הרווחים שסביבן, באותיות גדולות, מחוברות באמצעות
>(רווח, סימן גדול מ־, רווח) - המילה הארוכה ביותר, ללא רווחים. אם לכמה מילים יש אותו אורך, יש להדפיס את הראשונה
עבור הקלט red, green ,blue, הפלט הוא:
3
RED > GREEN > BLUE
greenנסו בעצמכם
extends Node
func _ready():
var line := OS.read_string_from_stdin()
# הדפס את הספירה, את המילים המחוברות ואת המילה הארוכה ביותר
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין