مسیرها
/
Haskell
Haskell
/
تمرین‌ها
/
حمله‌ی وزیر
حمله‌ی وزیر

حمله‌ی وزیر

متوسط

دستورالعمل‌ها

با توجه به موقعیت دو وزیر روی یک تخته‌ی شطرنج، مشخص کنید که آیا آن‌ها طوری قرار گرفته‌اند که بتوانند به یکدیگر حمله کنند یا نه.

در بازی شطرنج، وزیر می‌تواند به مهره‌هایی حمله کند که در همان سطر، ستون یا قطر قرار دارند.

یک تخته‌ی شطرنج را می‌توان با یک آرایه‌ی ۸ در ۸ نمایش داد.

پس اگر به شما بگویند وزیر سفید در c5 است (با اندیس صفر در ستون ۲ و سطر ۳) و وزیر سیاه در f2 (با اندیس صفر در ستون ۵ و سطر ۶)، آن‌وقت می‌دانید که چیدمان به این شکل است:

یک تخته‌ی شطرنج با دو وزیر. پیکان‌هایی که از وزیر در c5 بیرون می‌آیند، جهت‌های ممکن حمله در طول ستون، ردیف و قطر را نشان می‌دهند.

شما همچنین می‌توانید پاسخ دهید که آیا وزیرها می‌توانند به یکدیگر حمله کنند یا نه. در این حالت، پاسخ بله است؛ آن‌ها می‌توانند، چون هر دو مهره روی یک قطر مشترک قرار دارند.

اعتبار

تصویر تخته‌ی شطرنج را habere-et-dispertire با استفاده از LaTeX و بسته‌ی chessboard ساخته‌ی Ulrike Fischer ساخته است.

نکات

برای تکمیل این تمرین، باید توابع زیر را پیاده‌سازی کنید:

  • boardString
  • canAttack

امضاهای نوع از قبل در جای خود قرار دارند، اما تعریف توابع بر عهده‌ی خودتان است.

موقعیت‌ها به صورت دوتایی مشخص می‌شوند:

  • عنصر اول سطر است (که در شطرنج به آن ردیف می‌گویند).
  • عنصر دوم ستون است (که در شطرنج همان ستون است).
  • (0, 0) گوشه‌ی بالا سمت چپ صفحه است، (0, 7) گوشه‌ی بالا سمت راست،
  • (7, 0) گوشه‌ی پایین سمت چپ است و (7, 7) گوشه‌ی پایین سمت راست.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Haskell Exercism

آماده‌اید حمله‌ی وزیر را شروع کنید؟

در Exercism ثبت‌نام کنید تا Haskell را همراه با 107 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.