Trabajas como investigador en PRISM (Precariously Redirected Illumination Safety Management), en un sistema de calibración láser de precisión que pone a prueba prismas de cristal experimentales. Estos cristales se están desarrollando para ordenadores ópticos de nueva generación, y cada uno tiene propiedades de refracción únicas basadas en su estructura molecular. El sistema láser del laboratorio puede dañar los cristales si reciben una iluminación inesperada, así que predecir con exactitud su trayectoria es fundamental.
Antes de activar el array láser, debes predecir el orden exacto en el que se golpearán los cristales, identificados por sus identificadores de muestra.
Considera esta configuración de array de cristales:
{
"start": { "x": 0, "y": 0, "angle": 0 },
"prisms": [
{ "id": 1, "x": 10, "y": 10, "angle": -90 },
{ "id": 2, "x": 10, "y": 0, "angle": 90 },
{ "id": 3, "x": 30, "y": 10, "angle": 45 },
{ "id": 4, "x": 20, "y": 0, "angle": 0 }
]
}
El láser comienza en el origen (0, 0) y se dispara horizontalmente hacia la derecha con un ángulo de 0°.
Este es el recorrido del haz paso a paso:
Paso 1: El haz viaja a lo largo del eje x (y = 0) y se encuentra por primera vez con el cristal n.º 2 en la posición (10, 0).
Este cristal tiene un ángulo de refracción de 90°, lo que significa que desvía el haz perpendicularmente a su trayectoria actual.
El haz, que originalmente viajaba a 0°, ahora se redirige a 90° (directamente hacia arriba).
Paso 2: El haz ahora viaja verticalmente hacia arriba desde la posición (10, 0) e impacta en el cristal n.º 1 en la posición (10, 10).
Este cristal tiene un ángulo de refracción de -90°, lo que desvía el haz -90° respecto a su dirección actual.
El haz viajaba a 90°, así que tras la refracción ahora está a 0° (90° + (-90°) = 0°), viajando de nuevo horizontalmente hacia la derecha.
Paso 3: Desde la posición (10, 10), el haz viaja horizontalmente y se encuentra con el cristal n.º 3 en la posición (30, 10).
Este cristal refracta el haz 45°, cambiando su dirección a 45°.
El haz continúa hacia el espacio vacío más allá del array.
Regístrate en Exercism para aprender y dominar CoffeeScript con 97 ejercicios y mentoría humana real, todo gratis.