Um eine Zombie-Invasion zu simulieren, beginnen Sie mit einem Raster #
und stellen Sie die Karte dar:
## ##
### #
## ##
# ###
# ####
#
Land darstellt.steht für Wasser.
Die Zombies starten an einem Punkt auf der Karte ...
## ##
### #
## %#
# ###
# ####
... und sich ausbreiten. %
bezeichnet von Zombies infiziertes Land.
Allerdings Zombies können nicht schwimmen . Sie können sich auf die gleiche Weise über Land bewegen, wie sich ein König im Schach bewegt - ein Feld in einer beliebigen diagonalen oder orthogonalen Richtung:
!!!
!%!
!!!
Am Ende der Simulation wird ein Teil des Landes mit Zombies infiziert:
%% ##
%%% #
%% %%
% %%%
# %%%%
Ihre Aufgabe ist es, die Zombie-Invasion zu simulieren. Schreiben Sie ein Programm (oder eine Funktion), das eine Zeichenfolge als Eingabe verwendet, die den Anfangszustand des Gitters darstellt, und zwei Zahlen, die die Koordinaten des Anfangszombies darstellen. Das Programm sollte den Endzustand der Invasion ausgeben (oder zurückgeben).
Spezifikationen
- Ihr Programm druckt möglicherweise eine optionale abschließende Newline.
- Sie können davon ausgehen, dass die Eingabe im richtigen Format erfolgt (mit Leerzeichen aufgefüllt), mit einer optionalen nachgestellten Newline.
- Sie können davon ausgehen, dass der erste Zombie an Land startet und nicht sofort stirbt.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort (in Bytes).
- -100% Bonus, wenn Ihr Code auch das Halteproblem für beliebige Turing-Maschinen lösen kann .
- Ihr Programm sollte Kartenbreiten von bis zu 50 Zeichen unterstützen.