العودة إلى موقع برمج

تحدي الدوال المساعدة

swift
#1

إيش المشكلة ؟ :man_facepalming:t3:

#2

انتبه عليك استخدام الدوال التي تم تعريفها مسبقا ضمن الحل
دالة الحركة صحيحة
دالة المهاجمة سيتم استخدامها داخل دالة destroy وبالتالي لن نستخدم دالة destroy داخلها
حاول التفكير بطريقة لانقاص قيمة حياة العدو بمقدار قوة البطل داخل الدالة attack

#3

هو إيش يقصد بـ amount في دالة ـ takeDamage .
مو لازم أخلي amount = قوة البطل strength عشان تحمل قيمتها وتنقصها من health العدو في دالة attack ؟

#4

ممتاز
amount هو معامل خاص بالدالة takeDamage وستقوم بتمرير قيمته عند استدعاء الدالة
بالتالي يمكنك استدعائها وتمرير قوة البطل ولاتنسى استخدام self للدلالة على استخدام قوة البطل لمتغير الكلاس الحالي

#5

(takeDamage(Hero.strength مو كذا المفروض ؟
معليش ?this كيف إستخدامها

#6

مو المفروض كذا؟

#7

عذرا قصدت self. اقتربت كثيرا,
لست بحاجة لاستخدام hero حيث self تكفي لتدل عليه

#8

} (func attack(_ monster: Monster
(monster = Monster.takeDamage(self.strength
}

} (func attack(_ monster: Monster
(Monster.takeDamage(self.strength
}

كلها خطأ :face_with_symbols_over_mouth: :laughing:

#9

يجب ان يكون حلك الثاني صحيح
هل يمكنك اعادة التحقق وفي حال لم تنجح ان تضع صورة لحلك لاتمكن من تحديد الخطأ ومساعدتك

#10


السلام عليكم
لماذا كتبنا هنا self.location = location ارجو التوضيح :slightly_smiling_face:

#11

ان كل كائن من الكلاس يحوي نفس اسماء الخواص ولتمييز الخاصية للكائن المطلوب يتم استخدام self
اي self.location تدل على الخاصية للكائن
و location تدل على القيمة التي تم تمريرها

#12

اعذرني استاذ فادي بس والله ما فهمت :upside_down_face:🥲

#13

و هنا اين الخطأ🌚

#14

تحتاج الى استخدام self.strength لانه لم يتم تمريرها وتتعلق بالكائن نفسه