
Tu vida podría depender de esto. No pestañees. Ni siquiera pestañees. Parpadea y estás muerto. Ellos son rápidos. Más rápido de lo que puedes creer. ¡No le des la espalda, no mires a otro lado y no pestañees! Buena suerte.
Los Ángeles llorones son una raza alienígena que no puede moverse mientras otro ser lo observa (incluso otro Ángel). Se alimentan enviando a sus víctimas en el tiempo. Usted ( el Doctor ) está atrapado en una habitación con algunos, y necesita llegar a su TARDIS.
Tarea
Escriba un programa que, dada una representación ASCII de una habitación rectangular, muestre un camino que lo llevará a la seguridad. Si algún ángel puede atacar, en cualquier momento durante su progreso , entonces ese camino no es seguro. Un ángel puede atacar si puede verte mientras tú u otro ángel no te ven.
Entrada
La entrada es de dos partes. Primero, la dirección que estás mirando (NSEW). Luego, en líneas sucesivas, una representación de la sala, que muestra las ubicaciones de inicio / finalización y la ubicación / orientación de todos los Ángeles.
El siguiente ejemplo muestra que hay un ángel mirando hacia el oeste, y usted comienza a mirar hacia el sur.
S
..........
....D.....
..........
..........
..........
..........
..........
..........
.........W
..........
...T......
.- Espacio vacioD- El Doctor (posición inicial)T- La TARDIS (posición final)N,S,E,W- Un ángel, mirando hacia la dirección especificada (norte, sur, este, oeste)
Línea de visión
Puede ver cualquier espacio dentro de los 45 grados de la dirección que está mirando. La línea de visión está obstruida si hay otra entidad a lo largo de una horizontal directa, vertical o diagonal de 45 grados. Cualquier otra diagonal no obstruye la vista. La línea de visión de los ángeles funciona de la misma manera. Por ejemplo, a continuación, -representa su campo de visión, suponiendo que esté orientado hacia el sur.
........
...D....
..---...
.-----..
-------.
---N----
---.--N-
---.----
Salida
La salida es una cadena que representa la ruta que tomará para salir. Si hay varias rutas seguras, elija una. Si ninguna ruta es segura, salida 0. Si el mapa está mal formado, haga lo que quiera, incluso estrellarse. Considérelo malformado si la habitación no es rectangular, no hay salida, etc. Si no hay ángeles, no tiene malformación, simplemente es fácil.
Para cada paso, puede hacer una de dos cosas: moverse en dirección NSEW o girar en dirección NSEW (sin cambiar de posición). Para moverse, simplemente envíe la letra para esa dirección. Para girar hacia una dirección, salida Fseguida de la letra apropiada. Por ejemplo, el siguiente resultado:
SSFESSSSSSSW
es una ruta segura para la muestra dada en la sección de entrada. Te mueves hacia el sur dos veces, miras hacia el este para mantener al ángel a la vista, luego muévete hacia el sur siete veces más y hacia el oeste una vez para ingresar a la TARDIS.
Casos de prueba
1) Puedes dar la vuelta al Ángel orientado al este para llegar a la TARDIS. A menos que te pares directamente entre ellos, se bloquean entre sí en su lugar, por lo que no importa en qué punto estés mirando en cualquier momento.
W
...D....
........
........
........
.E.....W
........
........
...T....
2) Pierdes No hay forma de superarlos. Se pueden ver hasta que te pares entre ellos. En ese punto, no puedes enfrentarlos a los dos y listo. También podría cerrar los ojos y acabar de una vez.
S
...D....
........
........
........
E......W
........
........
...T....
Victorioso
Se aplican las reglas de golf estándar y las lagunas , gana menos bytes. Intentaré obtener más casos de prueba pronto, pero no dudes en sugerir los tuyos mientras tanto.
Imagen y cita del Doctor Who.
J).