¡Mi robot ha hecho un cortocircuito de alguna manera y se alejó al azar de mi laboratorio!
Afortunadamente, cada vez que hace esto, se inicia su secuencia de apagado, dándole el tiempo suficiente para girar al azar y correr en la dirección que enfrenta durante cinco rondas antes de que se apague. Sus funciones de giroscopio y acelerómetro aún transmiten los datos al laboratorio mientras aún está encendido.
Los datos siempre vendrán en forma de cinco conjuntos de dos números, por ejemplo.
12:234,-135:47,-68:230,140:324,127,87
Su misión, los golfistas, es a) simular la frenética carrera y la secuencia de giro del robot mostrando cinco conjuntos de números en forma de a1:d1,a2:d2,a3:d3,a4:d4,a5:d5
donde a
(n) es el ángulo en el sentido de las agujas del reloj (en grados) de modo -179<=a<=+180
que el robot gire desde su rumbo actual ( inicialmente está en rumbo cero antes de que se vuelva loco y gire por primera vez), y d
(n) es la distancia en pies que ha corrido antes del siguiente cambio de rumbo que es tal que 0<=d<=500
pies; y b) un rumbo calculado del laboratorio (que también enfrenta un rumbo de cero), la distancia en pies (se recomienda una precisión de hasta 3 decimales, -5 bytes si lo hace) y el rumbo de orientación (en grados) de dónde está mi robot cuando se apaga.
Ejemplo fácil:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Los giros y distancias al azar son solo eso, al azar. No se deben codificar los valores establecidos, debemos ver la aleatoriedad en acción dentro del código.
Restricciones a la aleatoriedad: sin referencias basadas en reloj o fecha, necesitamos ver una random
referencia nativa dentro del código. Cada vez que ejecute este código, la aleatoriedad debe presentarse con la posibilidad de mostrar 1 de 360 ángulos posibles de giro con cada vuelta. Entonces, el robot puede girar -36 grados en una vuelta y puede girar +157 grados en la siguiente, seguido de otra vuelta de +2 grados por otra vuelta de -116 grados y una vuelta final de +42 grados en la vuelta final. Deben ser posibles al menos 360 valores distintos (entre -179 y +180 grados inclusive) con cada generación de ángulo aleatorio.
Restricciones a la carrera de distancia: de manera similar, hay 501 distancias posibles que el robot puede correr (entre 0 y 500 pies inclusive), por lo que espero que la aleatoriedad también esté disponible al determinar la distancia de carrera del robot. El robot podría correr teóricamente 45, 117, 364, 27 y 6 pies con cada una de sus rondas respectivas ...
Los datos que se le proporcionen siempre estarán en valores enteros ... el robot girará en rangos enteros de grados y se ejecutará en rangos enteros de distancia. Sin embargo, los valores de salida serán flotantes ...
Este es el código de golf. El código más corto gana ... ¡Ahora ve a buscar mi robot!
PD: En referencia a mi "Precisión de hasta 3 lugares decimales", si puede proporcionar el rumbo (en grados, a un MÍNIMO de 3 lugares decimales) y una distancia en pies (también precisa también a un mínimo de 3 lugares decimales) obtendrá un bono de -5 bytes).
-180 < a <= +180
como el<
signo por sí solo significa menos pero no incluye AFAIK ...