Este desafío está inspirado en un juego de mesa que jugué hace algún tiempo.
La historia de este desafío no necesariamente tiene que leerse, el objetivo de la sección desafío debe explicar todo lo necesario.
La historia
Las personas están encerradas dentro de una habitación grande con un monstruo devorador de humanos. Las paredes de la habitación están encantadas, teletransportando objetos a través de la habitación cuando se tocan. Dicho monstruo marcha a través de la habitación, buscando carne. El primer humano a la vista será consumido por sus afilados dientes.
El objetivo del desafío
Te dan el mapa de la habitación, que incluye la ubicación del pueblo y del monstruo.
%%%KLMNOPQRSTA%
%%J B
%I % C
H D
G %% E
F F
E % G
D H
C % I%
B J%%
%ATSRQPONMLK%%%
Analicemos los componentes del mapa.
- Cartas de
A
aT
: si el monstruo pisa uno de estos, se teletransportará a la segunda aparición de esta carta y no cambiará su dirección. Solo habrá cero o dos de cualquier letra en la pizarra. %
: Revestimientos. Solo por formato y aspecto agradable.#
: La ubicación inicial del monstruo.*
: Las ubicaciones de las personas.
Algunas cosas adicionales a tener en cuenta sobre el mapa:
- Las dimensiones del mapa y la ubicación del objeto no serán constantes, por lo que su código tendrá que adaptarse dinámicamente a eso.
El monstruo siempre irá en la dirección en la que se enfrenta actualmente (mirando hacia el oeste al comienzo) a menos que vea a un humano, en cuyo caso se girará hacia el humano más cercano .
El monstruo ve a un humano si no hay azulejos de pared o teletransportador en una línea recta horizontal o vertical entre él y el humano.
Otra cosa a tener en cuenta es que si el monstruo está frente a una pared sólida ( %
) o tiene que decidir entre dos humanos, siempre dará prioridad a la derecha sobre la izquierda.
Si el monstruo no puede girar a la derecha y dar un paso adelante por alguna razón, en su lugar , girará a la izquierda .
Entonces, al final, el orden en que el monstruo prioriza las direcciones sería hacia adelante, derecha, izquierda, hacia atrás.
Entrada
- El mapa, incluida la ubicación inicial del monstruo y las posiciones de las personas como sus respectivos personajes. No debe haber otra entrada que la cadena del mapa, o la matriz de cadenas o caracteres.
La entrada puede recibirse en cualquier formato razonable; una sola cadena o una matriz de cadenas para el mapa.
Salida
La coordenada de la persona que primero se come el monstruo.
Las coordenadas comienzan desde la esquina superior izquierda y están indexadas en 0, por lo que el primer mosaico tendrá las coordenadas (0 | 0). Si está utilizando la indexación 1, especifíquelo en su respuesta.
Reglas
- Este es el código de golf , gana el código más corto en bytes en cualquier idioma.
- Las lagunas estándar están prohibidas.
- Puedes suponer que el monstruo siempre podrá alcanzar a un humano.
Casos de prueba
Entrada:
%%%KLMNOPQRSTA%
%%J B
%I %* C
H * D
G %% E
F # F
E % G
D * H
C % I%
B J%%
%ATSRQPONMLK%%%
Salida: (10,2)
como el monstruo no puede ver a las otras dos personas cuando pasa corriendo, se teletransporta a la otra F
pared, donde verá a la última persona.
Entrada:
%%%KLMNOPQRSTA%
%%J B
%I * C
H %%% * D
G #% E
F %%% % F
E G
D % H
C * I%
B * J%%
%ATSRQPONMLK%%%
Salida: (12,3)
Entrada:
%%%KLMNOPQRSTA%
%%J B
%I %%% C
H *%#% D
G E
F F
E % G
D H
C I%
B J%%
%ATSRQPONMLK%%%
Salida: (6, 3)
Entrada:
%%%%%%%%%%%%%%%
%#% %%% %
%A%ABCD %*% %
%*F G %%% %
% %BC% FD %
% % % %%%%
% % % %%
% % %% G %
% %
%*% % % %
%%%%%%%%%%%%%%%
Salida: (1,9)
¡Buena suerte!