تمثّل النطاقات تسلسلًا من عدد صحيح واحد أو عدة أعداد صحيحة متتالية. وتُنشأ بربط عددين صحيحين بـ ...
1..5
يمكن أن تكون النطاقات تصاعدية أو تنازلية، وهي تشمل دائمًا القيمة الأولى والقيمة الأخيرة.
يُنفّذ النطاق بروتوكول Enumerable، ما يعني أنه يمكن استخدام الدوال في وحدة Enum للتعامل مع النطاقات.
بصفتك من محبي الشطرنج، تودّ أن تكتب نسختك الخاصة من اللعبة. صحيح أن هناك الكثير من تطبيقات الشطرنج المتاحة على الإنترنت بالفعل، لكن نسختك ستكون فريدة!
لكن قبل أن تُطلق العنان لخيالك، عليك أن تهتم بالأساسيات. لنبدأ بتوليد الرقعة.
يُعرَّف كل مربع من مربعات رقعة الشطرنج بزوج مكوّن من حرف ورقم. الأعمدة الرأسية للمربعات، وتُسمّى الملفات، تُوسَم بالحروف من A إلى H. أما الصفوف الأفقية للمربعات، وتُسمّى الرتب، فتُرقَّم من 1 إلى 8.
نفّذ الدالة rank_range/0. ينبغي أن تُرجع نطاقًا من الأعداد الصحيحة، من 1 إلى 8.
Chessboard.rank_range()
نفّذ الدالة file_range/0. ينبغي أن تُرجع نطاقًا من الأعداد الصحيحة، من نقطة كود الحرف الكبير A، إلى نقطة كود الحرف الكبير H.
Chessboard.file_range()
نفّذ الدالة ranks/0. ينبغي أن تُرجع مصفوفة من الأعداد الصحيحة، من 1 إلى 8. لا تكتب المصفوفة يدويًا، بل ولّدها من النطاق الذي تُرجعه الدالة rank_range/0.
Chessboard.ranks()
# => [1, 2, 3, 4, 5, 6, 7, 8]
نفّذ الدالة files/0. ينبغي أن تُرجع مصفوفة من الحروف (السلاسل النصية)، من "A" إلى "H". لا تكتب المصفوفة يدويًا، بل ولّدها من النطاق الذي تُرجعه الدالة file_range/0.
Chessboard.files()
# => ["A", "B", "C", "D", "E", "F", "G", "H"]
سجّل في Exercism لتتعلّم وتتقن Elixir عبر 58 مفهومًا168 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.