Примітка : Андерс Касеорг попереджає мене, що це може бути дублікатом іншого попереднього питання . Це здається, і мені дуже шкода, що я не знайшов цього питання перед тим, як опублікувати це. Тим не менш, на це питання було отримано лише одну відповідь, і ця більш проста, на всякий випадок, якщо ви все-таки захочете спробувати цього разу. Я зрозумію, якщо це питання в кінцевому підсумку буде позначено як дублікат.
Змагання
Враховуючи такий вхід:
8g 8Df 4cs 2C 1A
Напишіть найкоротшу програму / функцію, яка дає такий вихід:
/\ -o-
| |
---|-|---------------------------------------------------|-|
|/ | |
---/|--------|\----b-*-----------------------------------|-|
/ | | | | o | |
-|--|--------|------|-----------------|------------------|-|
| (| \ | | | | | |
-|--|--)----*-------|/---------|------|------------------|-|
\ | / | | | |
-----|-------------------------|-------------------------|-|
| |
*_/ #-*-
Правила
Вихід повинен складатися з п'ятилінійного персоналу, який починається з малювання G-ключем точно так, як показано вище, вирівнюється зліва від штату та залишає одну колонку після початку роботи штату.
/\
| |
---|-|--
|/
---/|---
/ |
-|--|---
| (| \
-|--|--)
\ | /
-----|--
|
*_/
^
Single column
Нотатки повинні починатися з символу *
або o
символу залежно від його типу.
Має бути рівно вісім стовпців розділення кожного *
або o
символу:
/\ -o-
| |
---|-|---------------------------------------------------|-|
|/ | |
---/|--------|\----b-*-----------------------------------|-|
/ | | | | o | |
-|--|--------|------|-----------------|------------------|-|
| (| \ | | | | | |
-|--|--)----*-------|/---------|------|------------------|-|
\ | / | | | |
-----|-------------------------|-------------------------|-|
| |
*_/ #-*-
↑ ↑ ↑ ↑ ↑ ↑ ↑
8 columns of separation
Персонал повинен закінчуватися термінатором, вирівняним праворуч, як показано в прикладі. Лівий рядок термінатора повинен бути відокремлений 8 стовпцями від останньої ноти.
Вхід буде представляти собою один рядок, що містить нотатки (принаймні один, без порожніх входів), кожен розділений пробілом (ви можете вважати, що кожна примітка буде належною, тому не потрібно перевіряти на помилки). Ви також можете приймати введення як масив рядків із приміткою на елемент у масиві. Для кожної ноти перший символ буде знаменником довжини ноти ( 1
для цілої ноти / напівкоси , починається з o
; 2
для половини нота / мінімуму , починається з o
; 4
для чверті нота / гачком , починається з *
; і 8
для восьмої примітка / тремтіння , починається з*
). Другим символом буде нота (див. Наступну таблицю), а третій, необов’язковий символ, буде f
або F
для плоских нотаток, s
або S
для гострих нот.
--- A (ledger line)
G
-------- F
E
-------- D
C
-------- b
a
-------- g
f
-------- e
d
--- c (ledger line)
Очевидно, що вхід повинен поважати регістр приміток, але ви можете вибрати регістр f
і s
модифікаторів.
Примітки c
і A
повинні додавати дві -
(лінійки ведення книги), по одній з кожної сторони, оскільки вони повинні розширювати штат. Зауваження d
та G
вийшли із співробітників , але не потребують в ГК лінії.
Вирівняні або загострені нотатки повинні містити b
або #
дві позиції зліва від нотатки.
Стебла (якщо такі є) необхідно намалювати 4 вертикальними брусками. Нотатки b
зверху і вище повинні бути намальовані стеблом вниз і в лівій частині ноти. Нотатки a
зверху та знизу повинні малювати стебло вгору та в правій частині ноти. Квалівці повинні додавати прапор завжди праворуч і точно так, як показано, і їх не потрібно випромінювати, якщо їх є кілька підряд.
--------------------------
-----|\----b-*------------
| | |
-----|------|-------------
| | |
----*-------|/---------|--
↑↑ |
----||------↑↑---------|--
|| || |
|| || #-*-
|\ |\ ↑↑
| Stem | Note | Stem
Note Stem Note
Як завжди, ваша програма / функція може безпосередньо намалювати вихідний сигнал або повернути рядок, масив рядків, матрицю символів або будь-який інший розумний формат.
Корисні посилання
Це код-гольф , тому може виграти найкоротша програма / функція для кожної мови!
Бонус: спробуйте написати приклади з відомими мелодіями і нехай кожен спробує здогадатися, яка це мелодія!