Mon robot a court-circuité d'une manière ou d'une autre et s'est enfui au hasard quelque part de mon laboratoire!
Heureusement, chaque fois qu'il le fait, sa séquence d'arrêt démarre, ce qui lui donne suffisamment de temps pour se tourner et courir dans le sens de son orientation pendant cinq tours avant de s'éteindre. Ses fonctions de gyroscope et d'accéléromètre relaient toujours les données au laboratoire pendant qu'il est toujours en marche.
Les données viendront toujours sous la forme de cinq ensembles de deux nombres, par exemple.
12:234,-135:47,-68:230,140:324,127,87
Votre mission, les golfeurs est de a) simuler la séquence de course et de virage frénétique du robot en affichant cinq séries de nombres sous la forme a1:d1,a2:d2,a3:d3,a4:d4,a5:d5où a(n) est l'angle dans le sens horaire (en degrés) de telle sorte -179<=a<=+180que le robot se détourne de son cap actuel ( au départ, il est à zéro cap avant de s'emballer et de tourner pour la première fois), et d(n) est la distance en pieds qu'il a parcourue avant le changement de cap suivant qui est telle que les 0<=d<=500pieds; et b) Un cap calculé à partir du laboratoire (qui fait également face à un cap de zéro), la distance en pieds (la précision jusqu'à 3 décimales est fortement encouragée, -5 octets si vous le faites) et le cap d'orientation (en degrés) de l'endroit où mon robot est face lorsqu'il s'est éteint.
Exemple simple:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Les virages et les distances aléatoires ne sont que cela, aléatoires. Aucune valeur définie ne doit être codée en dur, nous devons voir le caractère aléatoire en action dans le code.
Restrictions au caractère aléatoire: pas de références basées sur l'horloge ou la date, nous devons voir une randomréférence native dans le code. Chaque fois que vous exécutez ce code, le caractère aléatoire doit se présenter avec la possibilité d'afficher 1 des 360 angles de virage possibles à chaque tour de virage. Ainsi, le robot peut tourner de -36 degrés à un tour et peut tourner de +157 degrés le suivant, suivi d'un autre tour de +2 degrés par un autre tour de -116 degrés et un dernier tour de +42 degrés au dernier tour. Au moins 360 valeurs distinctes doivent être possibles (entre -179 et +180 degrés inclus) à chaque génération d'angle aléatoire.
Restrictions à la distance parcourue: De même, il y a 501 distances possibles que le robot peut parcourir (entre 0 et 500 pieds inclus), donc je m'attends à ce que l'aléatoire soit également disponible lors de la détermination de la distance de course du robot. Le robot pourrait théoriquement courir 45, 117, 364, 27 et 6 pieds avec chacun de ses tours respectifs ...
Les données qui vous sont fournies seront toujours en valeurs entières ... le robot tournera en plages de degrés entières et fonctionnera en plages de distances entières. Les valeurs de sortie seront cependant des flottants ...
C'est du code-golf. Le code le plus court gagne ... Maintenant, allez chercher mon robot!
PS: En référence à ma "Précision jusqu'à 3 décimales", si vous pouvez fournir le cap (en degrés, jusqu'à un MINIMUM de 3 décimales) et une distance en pieds (également précis aussi pour un MINIMUM de 3 décimales) vous recevra un bonus de -5 octets).
-180 < a <= +180comme<signe à lui seul moins que mais sans inclure AFAIK ...