Мой робот как-то замкнулся и случайно убежал куда-то из моей лаборатории!
К счастью, всякий раз, когда он делает это, его последовательность выключения начинается, давая ему достаточно времени, чтобы случайным образом повернуть и бежать в направлении его движения в течение пяти раундов, прежде чем он выключится. Его функции гироскопа и акселерометра все еще передают данные обратно в лабораторию, пока он еще включен.
Например, данные всегда будут представлены в виде пяти наборов из двух чисел.
12:234,-135:47,-68:230,140:324,127,87
Ваша задача, игроки в гольф, состоит в том, чтобы: а) симулировать безумную последовательность бега и поворота робота, отображая пять наборов чисел в виде a1:d1,a2:d2,a3:d3,a4:d4,a5:d5
где a
(n) - угол по часовой стрелке (в градусах), так -179<=a<=+180
что робот будет поворачиваться с текущего курса ( изначально он движется с нулевым курсом до того, как он выйдет из-под контроля и повернется в первый раз), и d
(n) - это расстояние в футах, которое он прошел до следующего изменения курса, которое таково, что 0<=d<=500
ноги; и b) рассчитанный курс из лаборатории (который также ориентирован на нулевой курс), расстояние в футах (строго рекомендуется точность до 3 десятичных знаков, -5 байт, если вы это делаете) и ориентационный курс (в градусах) где мой робот, когда он выключен.
Простой пример:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Случайные повороты и расстояния просто случайны. Никакие установленные значения не должны быть жестко запрограммированы, мы должны видеть случайность в действии в коде.
Ограничения на случайность: нет ссылок на часы или дату, нам нужно увидеть встроенную random
ссылку в коде. Всякий раз, когда вы запускаете этот код, случайность должна показывать возможность показывать 1 из 360 возможных углов поворота с каждым раундом поворота. Таким образом, робот может поворачиваться на -36 градусов за один оборот и может поворачиваться на +157 градусов на следующий, после чего следует еще один поворот на +2 градуса, еще один поворот на -116 градусов и заключительный поворот на +42 градуса на последнем повороте. Должно быть как минимум 360 различных значений (от -179 до +180 градусов включительно) с каждым генерацией случайного угла.
Ограничения на дистанцию пробега: Аналогичным образом, существует 501 возможное расстояние, на которое робот может пробежать (от 0 до 500 футов включительно), поэтому я ожидаю, что случайность также будет доступна при определении пробега робота. Робот теоретически может бегать 45, 117, 364, 27 и 6 футов с каждым из своих соответствующих раундов ...
Подаваемые вам данные всегда будут иметь целочисленные значения ... робот будет поворачиваться в целочисленных диапазонах градусов и работать в целочисленных диапазонах расстояния. Однако выходные значения будут плавающими ...
Это код-гольф. Самый короткий код выигрывает ... А теперь иди и найди моего робота!
PS: В отношении моей «Точности до 3 десятичных знаков», если вы можете указать курс (в градусах, до МИНИМАЛЬНОГО 3 десятичных знака) и расстояние в футах (также с точностью до МИНИМАЛЬНЫХ 3 десятичных знаков), вы получит бонус -5 байт).
-180 < a <= +180
в качестве<
знака собственные средства меньше, чем AFAIK, но не включая ...