مسیرها
/
Scala
Scala
/
تمرین‌ها
/
کمک‌کننده‌ی سودوکوی قاتل
کمک‌کننده‌ی سودوکوی قاتل

کمک‌کننده‌ی سودوکوی قاتل

متوسط

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

یکی از دوستانتان در حال یادگیری حل کردن Killer Sudoku است (قوانین در ادامه می‌آید)، اما در فهمیدن اینکه کدام ارقام می‌توانند در یک قفس قرار بگیرند مشکل دارد. او از شما می‌خواهد که با نوشتن یک برنامه‌ی کوچک به او کمک کنید: برنامه‌ای که همه‌ی ترکیب‌های معتبر یک قفس مشخص را فهرست کند، و همچنین هر محدودیتی را که بر آن قفس اثر می‌گذارد.

برای اینکه خروجی برنامه‌تان به‌راحتی خوانده شود، ترکیب‌هایی که برمی‌گرداند باید مرتب‌سازی شده باشند.

قوانین Killer Sudoku

  • قوانین استاندارد سودوکو اعمال می‌شود.
  • ارقام داخل یک قفس، که معمولاً با یک خط‌چین مشخص می‌شود، جمعشان برابر عدد کوچکی است که در گوشه‌ی قفس نوشته شده است.
  • هر رقم فقط یک بار می‌تواند در یک قفس ظاهر شود.

برای توضیح مفصل‌تر، این راهنما را ببینید.

مثال ۱: قفسی با تنها ۱ ترکیب ممکن

در یک قفس ۳ رقمی با مجموع ۷، تنها یک ترکیب معتبر وجود دارد: 124.

  • ۱ + ۲ + ۴ = ۷
  • هر ترکیب دیگری که جمعش ۷ شود، مثلاً 232، قاعده‌ی تکرارنشدن ارقام در یک قفس را نقض می‌کند.

جدول سودوکو، با سه قفس Killer که به‌عنوان یک گروه مشخص شده‌اند.
اولین قفس Killer در مربع ۳×۳ گوشه‌ی بالا سمت چپ جدول قرار دارد.
ستون میانی آن مربع، قفس را تشکیل می‌دهد و خانه‌های آن از بالا به پایین عبارت‌اند از: خانه‌ی اول شامل ۱ و یک علامت مدادی ۷ است که نشان‌دهنده‌ی مجموع قفس ۷ است، خانه‌ی دوم شامل ۲ و خانه‌ی سوم شامل ۵ است.
این اعداد با رنگ قرمز مشخص شده‌اند تا نشان دهند اشتباهی رخ داده است.
دومین قفس Killer در مربع ۳×۳ مرکزی جدول قرار دارد.
ستون میانی آن مربع، قفس را تشکیل می‌دهد و خانه‌های آن از بالا به پایین عبارت‌اند از: خانه‌ی اول شامل ۱ و یک علامت مدادی ۷ است که نشان‌دهنده‌ی مجموع قفس ۷ است، خانه‌ی دوم شامل ۲ و خانه‌ی سوم شامل ۴ است.
هیچ‌یک از اعداد این قفس مشخص نشده‌اند و بنابراین اشتباهی ندارند.
سومین قفس Killer در امتداد گوشه‌ی بیرونی مربع ۳×۳ مرکزی جدول قرار دارد.
این قفس از سه خانه‌ی زیر تشکیل شده است: خانه‌ی بالا سمت چپ قفس شامل ۲ است که با رنگ قرمز مشخص شده، و مجموع قفس ۷ است.
خانه‌ی بالا سمت راست قفس شامل ۳ است.
خانه‌ی پایین سمت راست قفس شامل ۲ است که با رنگ قرمز مشخص شده. همه‌ی خانه‌های دیگر خالی‌اند.

مثال ۲: قفسی با چندین ترکیب

در یک قفس ۲ رقمی با مجموع ۱۰، ۴ ترکیب ممکن وجود دارد:

  • 19
  • 28
  • 37
  • 46

جدول سودوکو؛ همه‌ی خانه‌ها خالی‌اند به‌جز ستون میانی، ستون ۵، که ۸ سطر آن پر شده است.
هر دو سطر پشت‌سرهم یک قفس Killer تشکیل می‌دهند و به‌عنوان یک گروه مشخص شده‌اند.
از بالا به پایین: گروه اول خانه‌ای با مقدار ۱ و یک علامت مدادی است که مجموع قفس ۱۰ را نشان می‌دهد، و خانه‌ای با مقدار ۹.
گروه دوم خانه‌ای با مقدار ۲ و یک علامت مدادی ۱۰، و خانه‌ای با مقدار ۸.
گروه سوم خانه‌ای با مقدار ۳ و یک علامت مدادی ۱۰، و خانه‌ای با مقدار ۷.
گروه چهارم خانه‌ای با مقدار ۴ و یک علامت مدادی ۱۰، و خانه‌ای با مقدار ۶.
آخرین خانه‌ی این ستون خالی است.

مثال ۳: قفسی با چندین ترکیب که محدود شده است

در یک قفس ۲ رقمی با مجموع ۱۰، در حالی که ستون از قبل شامل ۱ و ۴ است، ۲ ترکیب ممکن وجود دارد:

  • 28
  • 37

19 و 46 ممکن نیستند، زیرا طبق قوانین استاندارد سودوکو، ۱ و ۴ در آن ستون وجود دارند.

جدول سودوکو؛ همه‌ی خانه‌ها خالی‌اند به‌جز ستون میانی، ستون ۵، که ۸ سطر آن پر شده است.
سطر اول شامل ۴ است، سطر دوم خالی است و سطر سوم شامل ۱ است.
عدد ۱ با رنگ قرمز مشخص شده است تا نشان دهد اشتباهی رخ داده است.
۶ سطر آخر این ستون قفس‌های Killer دوتایی تشکیل می‌دهند.
از بالا به پایین: گروه اول خانه‌ای با مقدار ۲ و یک علامت مدادی است که مجموع قفس ۱۰ را نشان می‌دهد، و خانه‌ای با مقدار ۸.
گروه دوم خانه‌ای با مقدار ۳ و یک علامت مدادی ۱۰، و خانه‌ای با مقدار ۷.
گروه سوم خانه‌ای با مقدار ۱ است که با رنگ قرمز مشخص شده، و یک علامت مدادی ۱۰، و خانه‌ای با مقدار ۹.

خودتان امتحان کنید

اگر می‌خواهید یک Killer Sudoku ساده و قابل‌فهم را امتحان کنید، می‌توانید این معما را که ساخته‌ی Clover است امتحان کنید. این معما را Mark Goodliffe در Cracking The Cryptic در ۲۱ ژوئن ۲۰۲۱ معرفی کرده است.

همچنین می‌توانید Killer Sudoku را با سطح دشواری گوناگون در روزنامه‌های متعدد و نیز در اپلیکیشن‌ها، کتاب‌ها و وب‌سایت‌های سودوکو پیدا کنید.

اعتبار

تصاویر بالا با استفاده از F-Puzzles.com تولید شده‌اند؛ ابزاری برای طراحی معما ساخته‌ی Eric Fox.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Scala Exercism

آماده‌اید کمک‌کننده‌ی سودوکوی قاتل را شروع کنید؟

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