مینیاب یک بازی محبوب است که در آن کاربر باید مینها را با کمک نشانههای عددی پیدا کند. این نشانهها نشان میدهند که چند مین بهطور مستقیم (بهصورت افقی، عمودی یا قطری) با یک خانه مجاور است.
وظیفهی شما این است که در یک صفحهی مینیاب که کامل شده است، تعداد مینهای مجاور را به خانههای خالی اضافه کنید.
خود صفحه یک مستطیل است که از خانههایی تشکیل شده است که یا خالیاند (' ') یا مین ('*').
برای هر خانهی خالی، تعداد مینهای مجاور آن را بشمارید (بهصورت افقی، عمودی و قطری). اگر خانهی خالی هیچ مین مجاوری نداشته باشد، آن را خالی بگذارید. در غیر این صورت، آن را با تعداد مینهای مجاور جایگزین کنید.
برای مثال، ممکن است صفحهای ۵ در ۴ مانند این دریافت کنید (جاهای خالی در اینجا برای نمایش روی صفحه با نویسهی «·» نشان داده شدهاند):
·*·*·
··*··
··*··
·····
که کد شما باید آن را به این تبدیل کند:
1*3*1
13*31
·2*2·
·111·
میدان مین به شکل یک رشته نمایش داده میشود که در پایان هر سطر آن یک نویسهی خط جدید قرار دارد.
یک نمونه آن " \n * \n \n" است.
بافر رشتهی ورودی از بایتهای ۶۴ تا ۳۱۹ حافظهی خطی استفاده میکند.
در صورت تمایل میتوان رشتهی ورودی را در همان محل تغییر داد.
در Exercism ثبتنام کنید تا WebAssembly را همراه با 87 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
حلقههای For تودرتو، استفادهی هوشمندانه از `min` و `max` برای ساده کردن بررسی محدودهها، پایپلاینهای تابعی و استفاده از ماتریسهای دوبعدی را بررسی میکنیم.