Menu
CoddyTech

איחוד וחיתוך

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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() הוא [].

challenge icon

אתגר

קל

שני שחקנים פתחו כמה מיומנויות. התוכנית קוראת שתי שורות: המיומנויות של השחקן הראשון ושל השחקן השני, כשהן מופרדות ברווחים, וקוד הפתיחה בונה את הקבוצות 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

	# צרו את האיחוד ואת החיתוך

	# הדפיסו את התוצאות
quiz iconבחנו את עצמכם

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

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

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