بازهها دنبالهای از یک یا چند عدد صحیح متوالی را نشان میدهند. آنها با اتصال دو عدد صحیح با .. ساخته میشوند.
1..5
بازهها میتوانند صعودی یا نزولی باشند. آنها همیشه شامل هر دو مقدار اول و آخر هستند.
یک بازه پروتکل Enumerable را پیادهسازی میکند، که یعنی میتوان از توابع ماژول Enum برای کار با بازهها استفاده کرد.
بهعنوان یک علاقهمند به شطرنج، دوست دارید نسخهی خودتان از این بازی را بنویسید. بله، شاید همین حالا هم پیادهسازیهای زیادی از شطرنج بهصورت آنلاین در دسترس باشد، اما نسخهی شما منحصربهفرد خواهد بود!
اما پیش از آنکه تخیلتان را آزاد بگذارید، باید به اصول اولیه بپردازید. بیایید با تولید صفحه شروع کنیم.
هر خانه از صفحهی شطرنج با یک جفت حرف-عدد شناسایی میشود. ستونهای عمودی خانهها، که «فایل» نامیده میشوند، با حروف A تا H برچسبگذاری شدهاند. ردیفهای افقی خانهها، که «رتبه» نامیده میشوند، از ۱ تا ۸ شمارهگذاری شدهاند.
تابع rank_range/0 را پیادهسازی کنید. این تابع باید یک بازه از اعداد صحیح را برگرداند، از ۱ تا ۸.
Chessboard.rank_range()
تابع file_range/0 را پیادهسازی کنید. این تابع باید یک بازه از اعداد صحیح را برگرداند، از کدپوینت حرف بزرگ A تا کدپوینت حرف بزرگ H.
Chessboard.file_range()
تابع ranks/0 را پیادهسازی کنید. این تابع باید فهرستی از اعداد صحیح را برگرداند، از ۱ تا ۸. این فهرست را دستی ننویسید؛ آن را از بازهای که تابع 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"]