Menu
CoddyTech
flag Ar iconالعربيةdown icon

فرق المجموعات

جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 35 من 78.

يحتوي الفرق بين مجموعتين على عناصر المجموعة الأولى غير الموجودة في المجموعة الثانية. كرّر على عناصر المجموعة الأولى واحتفظ بما تفتقده المجموعة الثانية:

var needed := {"rope": true, "torch": true, "map": true}
var packed := {"torch": true, "apple": true}
var missing := {}
for item in needed:
	if not packed.has(item):
		missing[item] = true
print(missing.keys()) # ["rope", "map"]

ترتيب المجموعات مهم. الفرق بين packed وneeded هو ["apple"]: ما حزمتَه لكنك لم تحتج إليه.

يشكّل الفرقان معًا الفرق المتماثل: العناصر الموجودة في مجموعة واحدة فقط. هنا، هي rope وmap وapple.

للتحقق من عدم وجود أي شيء مفقود، تأخذ has_all() مصفوفةً وتُرجع true عندما يكون كل عنصر فيها مفتاحًا في القاموس:

print(packed.has_all(needed.keys())) # false: الحبل والخريطة غير موجودين
challenge icon

التحدي

سهل

قبل الرحلة، قارن ما تحتاج إليه بما حزمتَه. يقرأ البرنامج سطرين، العناصر المطلوبة والعناصر التي حزمتها، مفصولة بمسافات، وينشئ الكود الابتدائي المجموعتين needed وpacked.

اطبع سطرين، مع وصل العناصر باستخدام , :

  • Missing: متبوعًا بالعناصر المطلوبة غير المحزومة
  • Extra: متبوعًا بالعناصر المحزومة غير المطلوبة

حافظ على ترتيب المجموعة التي تمرّ عليها. اطبع none بدلًا من قائمة فارغة. بالنسبة إلى الإدخال:

rope torch map
torch apple

يكون الناتج:

Missing: rope, map
Extra: apple

جرّب بنفسك

extends Node

func _ready():
	var needed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		needed[item] = true
	var packed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		packed[item] = true

	# احسب الفرقين

	# اطبع النتائج
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفّق التنفيذ

تدرّب بنفسك: مترجم GDScript عبر الإنترنت