La defenestración es el acto de arrojar a alguien o algo por la ventana.
- Wikipedia
Entrada
La entrada constará de dos partes:
Un plano de planta y una persona dentro de la casa / edificio.
v><^representa a una persona, apuntando en la dirección indicada por la flecha. La entrada contendrá exactamente una persona.-y|representan paredes, y#representa una ventana.Es un espacio vacío.
Esta parte de la entrada puede tomarse como una sola cadena o como una matriz / lista / etc. de lineas. Nunca habrá espacios finales o iniciales, y la entrada siempre será un rectángulo.
Ejemplo:
-----###--- | | | ^ | -----------Un entero ≥ 1 que indica qué tan lejos (en caracteres) viaja la persona.
Salida
La salida debe ser
1si la persona termina "dentro" de una ventana (es decir, después de avanzar la distancia especificada en la entrada, la persona está encima de a#).2si la persona ha sido defenestrada (entre en contacto con ay#luego continúe más adelante).3si la persona ha golpeado una pared (entra en contacto con una-o|. Una vez que golpea la pared, la persona se detiene y no continúa a través de ella).0si nada de lo anterior es cierto (y todo lo que la persona ha hecho es viajar a través del espacio vacío).
Supuestos
Se puede suponer que todo lo siguiente es cierto:
La persona nunca viajará "fuera de los límites" del área de entrada.
Después de ser defenestrado, la persona nunca va a entrar en contacto con otra
#o una-/|(por lo que no tiene que preocuparse de si2y1o3son verdaderas).
Casos de prueba
Para el siguiente "plano de planta":
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Para este plano de planta:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Para este plano de planta:
||####|#|#|##|<
In Out
any 3
Caso de prueba final:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2

Has someone been for-sparta'd?Respuestas:
JavaScript (ES6),
147146 bytes¡Guardado 1 byte gracias a @NinjaBearMonkey !
Explicación
Toma un plano como una cadena y el número de movimientos. Devuelve un número
Prueba
Mostrar fragmento de código
fuente