لقد تم تعيينك لتطوير Noble Knots، أحدث تطبيقات المواعدة وأكثرها رواجًا للنبلاء! مع قرون من الزيجات المتداخلة بين العائلات الملكية، أصبحت الأمور… معقدة. لتجنّب أي مواقف من نوع عفوًا، نحن توأمان، فإن مهمتك هي بناء نظام يتحقق من مدى قرابة شخصين.
استُلهم Noble Knots فكرته من تطبيق آيسلندا «Islendinga-App»، الذي تسنده قاعدة بيانات تتعقّب كل صلات القرابة المعروفة بين الآيسلنديين منذ زمن استيطان آيسلندا. وستحدّد خوارزميتك درجة القرابة بين أي شخصين في شجرة العائلة المالكة.
فهل سيساعد تطبيقك في تتويج شريك مثالي؟
مهمتك هي تحديد درجة الانفصال بين شخصين في شجرة عائلة. هذا مشابه لفكرة شائعة في الثقافة الشعبية مفادها أن كل ممثل في هوليوود يقع ضمن ست درجات من كيفن بيكون.
بالنظر إلى شجرة العائلة التالية:
┌──────────┐ ┌──────────┐ ┌───────────┐
│ Helena │ │ Erdős ├─────┤ Shusaku │
└───┬───┬──┘ └─────┬────┘ └────┬──────┘
┌───┘ └───────┐ └───────┬───────┘
┌─────┴────┐ ┌────┴───┐ ┌─────┴────┐
│ Isla ├─────┤ Tariq │ │ Kevin │
└────┬─────┘ └────┬───┘ └──────────┘
│ │
┌────┴────┐ ┌────┴───┐
│ Uma │ │ Morphy │
└─────────┘ └────────┘
درجة الانفصال بين Tariq و Uma هي 2 (Tariq → Isla → Uma). لا توجد علاقة معروفة بين Isla و Kevin، إذ لا توجد صلة في البيانات المعطاة. درجة الانفصال بين Uma و Isla هي 1.
Isla و Tariq شقيقان، ودرجة الانفصال بينهما 1. وبالمثل، سيبلغ هذا التنفيذ عن درجة انفصال مقدارها 2 بينك وبين عمّك.
سجّل في Exercism لتتعلّم وتتقن MoonScript عبر 126 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.