Pour simuler une invasion de zombies, commencez par une grille #
et représentant la carte:
## ##
### #
## ##
# ###
# ####
#
représente la terre.représente l'eau.
Les zombies commencent à un point de la carte ...
## ##
### #
## %#
# ###
# ####
... et se propager. %
désigne une terre infectée par des zombies.
Cependant, les zombies ne savent pas nager . Ils peuvent se déplacer à travers les terres de la même manière qu'un roi se déplace aux échecs - une case dans n'importe quelle direction diagonale ou orthogonale:
!!!
!%!
!!!
À la fin de la simulation, certains terrains seront infectés par des zombies:
%% ##
%%% #
%% %%
% %%%
# %%%%
Votre tâche consiste à simuler l'invasion de zombies. Écrivez un programme (ou une fonction) qui prend en entrée une chaîne représentant l'état initial de la grille et deux nombres représentant les coordonnées du zombie initial. Le programme devrait sortir (ou retourner) l'état final de l'invasion.
Caractéristiques
- Votre programme peut imprimer une nouvelle ligne de fin facultative.
- Vous pouvez supposer que l'entrée sera au format correct (avec des espaces), avec un retour à la ligne facultatif.
- Vous pouvez supposer que le zombie initial commencera sur terre et ne mourra pas immédiatement.
- Il s'agit de code-golf , donc la réponse la plus courte (en octets) l'emporte.
- -100% de bonus si votre code peut également résoudre le problème d'arrêt pour les machines de Turing arbitraires.
- Votre programme doit gérer des largeurs de carte pouvant atteindre 50 caractères.