Вступ:
Перед завданням, ось що робить кожен елемент на карті:
Звичайна земля ( X
): Це нічого не робить.
Знищена земля ( -
): Це те саме, що звичайна земля, але знищена бомбою.
Активна бомба ( !
): На карті це знищить усе в квадраті 3х3:
XXXXX XXXXX
XXXXX X---X
XX!XX > will become > X---X
XXXXX X---X
XXXXX XXXXX
Пасивна бомба ( @
): нічого не робить, поки не підірветься інша бомба. Він також має 3х3 квадратний радіус вибуху:
XXXXX XXXXX
XXXXX XXXXX
XX@XX > will become > XX@XX (nothing happened)
XXXXX XXXXX
XXXXX XXXXX
Але:
XXXXX XXXXX
XXXXX X---X
XX@XX > will become > ----X (both bombs have exploded)
X!XXX ----X
XXXXX ---XX
Nuke ( ~
): Він нічого не робить, поки не підірветься інша бомба. Різниця полягає в тому, що ця бомба має радіус вибуху площею 5х5 :
XXXXX XXXXX
XXXXX XXXXX
XX~XX > will become > XX~XX (nothing happened)
XXXXX XXXXX
XXXXX XXXXX
Але:
XXXXX -----
XXXXX -----
XX~XX > will become > ----- (both bombs have exploded)
X!XXX -----
XXXXX -----
Завдання
- З огляду на 9x9 карту , вихід карти після ланцюгової реакції.
- Ви можете надати функцію або програму.
- Це код-гольф , тому подання з найменшою кількістю байтів виграє!
Тестові справи
Тестовий випадок 1 ( 3 кроки ):
XXXXXXXXX XXXXXXXXX
----XXXXX ----XXXXX
XXXX@XXXX XXXX@XXXX
XXXXXXXX- XXX---XX-
XXXX@XXXX > ------XXX
XXXXXXXX- ------XX-
XX~XXXXXX -----XXXX
X!XXXXXX- -----XXX-
XXXXXXXXX -----XXXX
Тестовий випадок 2 ( 2 етапи ):
XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX
XX~XXXXXX XX~XXXXXX
--------- ---------
XXXX!XXXX > XXX---XXX
XXXXXXXXX XXX------
XXX@@X@!X XXX@@----
XXXXXXXXX XXXXX----
XXXXXXXXX XXXXXXXXX
Тестовий випадок 3 ( 2 кроки ):
XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX
XX~XXXXXX XX~XXXXXX
XXXXXXXXX XXX---XXX
XXXX!XXXX > XXX---XXX
XXXXXXXXX XXX------
XXX@@X@!X XXX@@----
XXXXXXXXX XXXXX----
XXXXXXXXX XXXXXXXXX
Тестовий випадок 4 ( 1 крок ):
XXXXXXXXX XXXXXXXXX
XXXX-XXXX XXXX-XXXX
XXXXXXXXX XXX---XXX
XX-X!X-XX XX-----XX
XXXXXXXXX > XXX---XXX
XX-----XX XX-----XX
XXXX-XXXX XXXX-XXXX
XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX
Тестовий випадок 5 ( 9 кроків ):
!XXXXXXXX ---XXXXXX
X@XXXXXXX ----XXXXX
XX@XXXXXX -----XXXX
XXX@XXXXX X-----XXX
XXXX@XXXX > XX-----XX
XXXXX@XXX XXX-----X
XXXXXX@XX XXXX-----
XXXXXXX@X XXXXX----
XXXXXXXX@ XXXXXX---
Тестовий випадок 6 ( 9 кроків ):
XX@@@XXXX ------XXX
XXXXXXXXX ------XXX
~XXXXXXXX ---XXXXXX
XXXXXXXXX ---XXXXXX
~XXXXXXXX > ---XXXXXX
XXXXXXXXX ---XXXXXX
~XXXXXXXX ---XXXXXX
@XXXXXXXX ---XXXXXX
!XXXXXXXX ---XXXXXX
Тестовий випадок 7 ( 3 кроки ):
!XXXXXXXX ---XXXXXX
X@XXXXXXX ----XXXXX
XX@XXXXXX ----XXXXX
XXXXXXXXX X---X----
XXXXXX@@! > XXXXX----
XXXXXXXXX X---X----
XX@XXXXXX ----XXXXX
X@XXXXXXX ----XXXXX
!XXXXXXXX ---XXXXXX