Вступ
Код Парсонса - це просто простий спосіб описати коливання звуку в музичному творі, будь то нота вище чи нижче, ніж попередня.
Навіть якщо ви хочете запам'ятати мелодії, ви все ще можете пригадати, якщо нота піднімається вгору чи вниз, таким чином код Парсонса може допомогти вам визначити музику за допомогою пошукової системи.
Опис
Кожна варіація представлена одним символом, який є одним із наступних:
R
якщо примітка така ж, як і попередня (означає " R epeat" )U
якщо примітка вище попередньої (означає " U p" )D
якщо нота нижча за попередню (означає " власне D " )
Початкова примітка записується як *
.
Приклад
Ось приклад коду Парсонса (початок "Оди радістю" ):
*RUURDDDDRUURDR
Ви можете насправді візуалізувати його так:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Ми будемо називати цей контур відтепер.
Правила оформлення таких countours розглядаються самостійно пояснено з допомогою наведеного вище прикладу.
Виклик
Тепер настає справжній виклик.
Напишіть програму, яка, задаючи контур як вхід, виводить відповідний код Парсонса.
Вас не просять намалювати контур, а насправді навпаки.
Від контуру знайдіть оригінальний код Парсонса.
Правила
- Діють звичайні правила кодового гольфу
- Виграє найкоротша програма в кількості байтів
- Вхід є контурним, а вихід повинен бути дійсним кодом Парсонса
- Деталі про додатковий пробіл для введення не мають значення. Робіть все, що найкраще підходить для вас
- Вам заборонено вводити жорсткий код, так чи інакше, частини виводу та / або програми, використовуючи додатковий пробіл через попереднє правило
Примітки
- Це може бути корисно для тестування
- Відповідний код Парсонса
*
є*
- Порожній рядок не є дійсним контуром
- Код Парсонса завжди починається з
*
*
що нічого не робить?
*
? Ні. Мабуть, він має надрукувати *
. Я додам цей кутовий корпус.
*
. Завжди.