بکندباز

در این چالش یک لیست دو بعدی در ورودی به شما داده می شود که نشان دهنده یک “نقشه” با سه نوع علامت است:

  • بمب های “+”: وقتی فعال می شوند، انفجار آنها هر بمبی را که در چهار جهت بالا، پایین، چپ یا راست بمب “+” باشد، فعال می کند.
  • بمب های “x”: هنگامی که فعال می شوند، انفجار آنها هر بمبی را که در هر یک از چهار جهت مورب در کنار بمب “x” قرار می گیرد، فعال می کند.
  • فضاهای خالی “0”.

این لیست را در نظر بگیرید:

[
  ["+", "+", "0", "x", "x", "+", "0"],
  ["0", "+", "+", "x", "0", "+", "x"]
]

اگر بمب “+” بالا سمت چپ منفجر شود، واکنش زنجیره ای حاصل، بمب ها را به ترتیب اعداد زیر منفجر می کند:

[
  ["1", "2", "0", "x", "6", "8", "0"],
  ["0", "3", "4", "5", "0", "7", "8"]
]

توجه داشته باشید که دو عدد 8 وجود دارد زیرا دو بمب به طور همزمان منفجر می شوند. همچنین توجه داشته باشید که یکی از بمب های “x” در ردیف بالا منفجر نمی شود.

تابعی بنویسید که مشخص کند آیا انفجار زنجیره ای که با انفجار بمب “بالا سمت چپ” شروع می شود، همه بمب ها را نابود می کند یا خیر.

نمونه ورودی و خروجی

all_explode([["+", "+", "+", "+", "+", "+", "x"]]) ➞ True

all_explode([["+", "+", "+", "+", "+", "0", "x"]]) ➞ False

all_explode([["+", "+", "0", "x", "x", "+", "0"], ["0", "+", "+", "x", "0", "+", "x"]]) ➞ False

نکته

  • هر دو بمب “+” و “x” فقط تا محدوده 1 خانه کنار خود را منفجر می کنند.
all_explode([["+", "+", "+", "+", "+", "+", "x"]])  ➞ True
all_explode([["+", "+", "+", "+", "+", "0", "x"]])  ➞ False
all_explode([["+", "+", "0", "x", "x", "+", "0"], ["0", "+", "+", "x", "0", "+", "x"]])  ➞ False
all_explode([["x", "0", "0"], ["0", "0", "0"], ["0", "0", "x"]])  ➞ False
all_explode([["x", "0", "x"], ["0", "x", "0"], ["x", "0", "x"]])  ➞ True

پاسخ های کاربران به این تمرین

mantix
امتیاز:‌ 15016
تصحیح اتوماتیک 0 0
‎پایتون‎
15 آبان 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Amin
امتیاز:‌ 9636
تصحیح اتوماتیک 0 0
‎پایتون‎
23 شهريور 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

mohamad.pro
امتیاز:‌ 445
تصحیح اتوماتیک 0 0
‎پایتون‎
22 شهريور 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Dragon
امتیاز:‌ 3606
تصحیح اتوماتیک 0 0
‎پایتون‎
29 مرداد 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

ali-zizo
امتیاز:‌ 7195
تصحیح اتوماتیک 0 0
‎پایتون‎
25 مرداد 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید