Mój robot jakoś zwarł i przypadkowo uciekł gdzieś z mojego laboratorium!
Na szczęście za każdym razem, gdy to robi, rozpoczyna się sekwencja wyłączania, dająca mu wystarczająco dużo czasu, aby losowo się odwrócił i pobiegł w kierunku przeciwległym przez pięć rund, zanim się wyłączy. Jego żyroskop i funkcje akcelerometru nadal przekazują dane z powrotem do laboratorium, gdy on jest nadal włączony.
Dane zawsze będą miały na przykład postać pięciu zestawów dwóch liczb.
12:234,-135:47,-68:230,140:324,127,87
Twoja misja, golfiści, to: a) zasymulować szaleńczą sekwencję biegu i obrotu robota, wyświetlając pięć zestawów liczb w postaci a1:d1,a2:d2,a3:d3,a4:d4,a5:d5gdzie a(n) jest kątem zgodnym z ruchem wskazówek zegara (w stopniach), dzięki -179<=a<=+180czemu robot skręci z bieżącego kierunku ( początkowo ma zerowy kurs, zanim zacznie amok i skręci po raz pierwszy), oraz d(n) jest odległością w stopach, jaką przebył przed następną zmianą kursu, czyli 0<=d<=500stopami; oraz b) Obliczony kurs z laboratorium (który również jest skierowany na pozycję zerową), odległość w stopach (zdecydowanie zaleca się dokładność do 3 miejsc po przecinku, -5 bajtów, jeśli tak się dzieje), a także orientacja (w stopniach) gdzie stoi mój robot, gdy się wyłączył.
Prosty przykład:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Losowe zakręty i odległości są po prostu losowe. Żadne ustawione wartości nie mają być zakodowane na stałe, musimy zobaczyć losowość działania w kodzie.
Ograniczenia losowości: Brak odwołań opartych na zegarze lub dacie, musimy zobaczyć natywne randomodwołanie w kodzie. Ilekroć uruchamiasz ten kod, losowość musi przedstawiać się z możliwością pokazania 1 z 360 możliwych kątów skrętu przy każdej rundzie. Tak więc robot może obrócić o -36 stopni za jednym obrotem i może obrócić o +157 stopni za następnym, a następnie o kolejny obrót o +2 stopnie o kolejny obrót o -116 stopni i końcowy obrót o +42 stopnie przy ostatnim zwoju. Przy każdym losowym generowaniu kąta muszą być możliwe co najmniej 360 różnych wartości (od -179 do +180 stopni włącznie).
Ograniczenia biegu na odległość: Podobnie ustawione, istnieje 501 możliwych odległości, które robot może przejechać (od 0 do 500 stóp włącznie), więc spodziewam się, że losowość będzie dostępna również przy określaniu odległości biegu robota. Robot mógłby teoretycznie przejechać 45, 117, 364, 27 i 6 stóp z każdą z odpowiednich rund ...
Dostarczone dane będą zawsze w liczbach całkowitych ... robot skręci w całkowitych zakresach stopni i będzie działał w całkowitych zakresach odległości. Wartości wyjściowe będą jednak zmiennoprzecinkowe ...
To jest golf golfowy. Najkrótszy kod wygrywa ... Teraz idź znajdź mojego robota!
PS: W odniesieniu do mojej „Dokładności do 3 miejsc po przecinku”, jeśli możesz podać nagłówek (w stopniach, do MINIMUM 3 miejsc po przecinku) i odległość w stopach (również dokładna do MINIMUM 3 miejsc po przecinku) dostanie premię -5 bajtów).
-180 < a <= +180jako<znaku jako takiego, oznacza mniej niż, ale nie wliczając AFAIK ...