איחוד וחיתוך
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 34 מתוך 78.
אפשר לשלב שתי קבוצות בשתי דרכים נפוצות:
- האיחוד מכיל כל איבר שנמצא באחת הקבוצות.
- החיתוך מכיל רק את האיברים שנמצאים בשתי הקבוצות.
ל-GDScript אין אופרטורים עבור הפעולות האלה, לכן בונים אותן באמצעות לולאות. עבור האיחוד, מוסיפים את האיברים של שתי הקבוצות לקבוצה חדשה. איבר שנמצא בשתי הקבוצות נכנס לאותו מפתח:
var mia := {"forest": true, "cave": true}
var leo := {"cave": true, "tower": true}
var either := {}
for place in mia:
either[place] = true
for place in leo:
either[place] = true
print(either.keys()) # ["forest", "cave", "tower"]מכיוון שכל הערכים הם true, merged() מחזירה את אותו איחוד בקריאה אחת: var either := mia.merged(leo). היא מחזירה מילון חדש ומשאירה את mia ללא שינוי.
עבור החיתוך, עבור בלולאה על קבוצה אחת ושמור את האיברים שנמצאים גם בקבוצה השנייה:
var both := {}
for place in mia:
if leo.has(place):
both[place] = true
print(both.keys()) # ["cave"]כאשר לקבוצות אין איברים משותפים, החיתוך ריק ו־both.keys() הוא [].
אתגר
קלשני שחקנים פתחו כמה מיומנויות. התוכנית קוראת שתי שורות: המיומנויות של השחקן הראשון ושל השחקן השני, כשהן מופרדות ברווחים, וקוד הפתיחה בונה את הקבוצות first ו־second.
הדפיסו את האיחוד ואת החיתוך של שתי הקבוצות, כשהאיברים מופרדים באמצעות , :
All skills:ואחריו האיחוד: המיומנויות של השחקן הראשון, ולאחר מכן המיומנויות החדשות של השחקן השניShared skills:ואחריו החיתוך, לפי הסדר של השחקן הראשון, אוnoneאם אין להם מיומנויות משותפות
עבור הקלט:
jump dash
dash swimהפלט הוא:
All skills: jump, dash, swim
Shared skills: dashנסו בעצמכם
extends Node
func _ready():
var first := {}
for skill in OS.read_string_from_stdin().split(" ", false):
first[skill] = true
var second := {}
for skill in OS.read_string_from_stdin().split(" ", false):
second[skill] = true
# צרו את האיחוד ואת החיתוך
# הדפיסו את התוצאות
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין