Aby zasymulować inwazję zombie, zacznij od siatki #
i reprezentującej mapę:
## ##
### #
## ##
# ###
# ####
#
reprezentuje ziemię.reprezentuje wodę.
Zombie zaczynają się w punkcie na mapie ...
## ##
### #
## %#
# ###
# ####
... i się rozprzestrzeniają. %
oznacza ziemię zainfekowaną zombie.
Jednak zombie nie mogą pływać . Mogą poruszać się po lądzie w taki sam sposób, w jaki król porusza się w szachach - jedno pole w dowolnym ukośnym lub prostopadłym kierunku:
!!!
!%!
!!!
Pod koniec symulacji część ziemi zostanie zainfekowana zombie:
%% ##
%%% #
%% %%
% %%%
# %%%%
Twoim zadaniem jest symulacja inwazji zombie. Napisz program (lub funkcję), który przyjmuje jako dane wejściowe ciąg reprezentujący początkowy stan siatki oraz dwie liczby reprezentujące współrzędne początkowego zombie. Program powinien wypisać (lub zwrócić) końcowy stan inwazji.
Dane techniczne
- Twój program może wydrukować opcjonalny znak nowej linii.
- Możesz założyć, że dane wejściowe będą miały poprawny format (wypełniony spacjami), z opcjonalnym końcowym znakiem nowej linii.
- Możesz założyć, że początkowy zombie zacznie się na lądzie i nie umrze natychmiast.
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź (w bajtach).
- -100% bonusu, jeśli Twój kod może rozwiązać problem zatrzymania dla dowolnych maszyn Turinga.
- Twój program powinien obsługiwać tablice o szerokości do 50 znaków.