вход
Символ любого триадического аккорда (см. Http://en.wikipedia.org/wiki/Chord_(music)#Triads ).
Выход
Ноты, составляющие данный аккорд.
Примеры
Вход: AM
Выход:A C# E
Вход: C#m
Выход:C# E G#
Вход: Db+
Выход:C# F A
Вход: C0
Выход:C D# F#
Бонусы
-50, если вы можете также иметь дело с седьмыми аккордами
-150 за то, что на самом деле играет звук аккорда
-150 за использование печатных символов, чтобы показать, как играть аккорд на фортепиано; пример для AM
:
┌─┬─┬┬─┬─┬─┬─┬┬─┲┱─┬─┬─┲━┱┬─┲━┱─┬─┬┬─┬┬─┬─┐
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ └┬┘└┬┘ │ └┬┘└┲┛┗┱┘ │ ┗┯┛└┲┛ ┃ └┬┘└┬┘└┬┘ │
│ │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
└──┴──┴──┴──┴──┺━━┹──┴──┴──┺━━┹──┴──┴──┴──┘
-100 за использование печатных символов, чтобы показать, как играть аккорд на гитаре; пример для AM
:
x o o o o o
┌───┬───┬───┬───┬───┐
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ █ █ █ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
(см. https://en.wikipedia.org/wiki/Box-drawing_character )
правила
Результатом должна быть программа или скрипт командной строки.
Вход и выход могут быть в любой форме, если они соответствуют стандарту музыкальной нотации.
Гитара или фортепьяно считается действительным, если и только если оно содержит три (триадные) или четыре (седьмой) обязательные ноты и ничего больше. Одна и та же нота может присутствовать несколько раз в аккорде.
Внешние библиотеки не допускаются, за исключением генерации звука (в этом случае директивы
#include
,import
... не добавляются к числу символов).Это код гольф, выигрывает самый короткий код!
Немного теории музыки ...
В современной западной тональной музыке каждая октава состоит из двенадцати последовательных нот, часто отмечаемых:
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
Или:
La
La#
Si
Do
Do#
Re
Re#
Mi
Fa
Fa#
Sol
Sol#
В этой системе мы считаем, что две последовательные ноты (например, A
и A#
, или E
и F
) разделены одним полутоном. Кроме того, заметки являются своего рода «зацикливанием»: то, что сразу следует, G#
- A
.
Аккорд состоит из нескольких (2, 3, 4, иногда больше) нот, которые «звучат хорошо вместе». Например, триадические аккорды содержат три разные ноты, а седьмые аккорды содержат четыре разные ноты.
Давайте определим четыре триадических аккорда как:
Большая триада : содержит корень аккорда (в этом вопросе примечание, приведенное в качестве входных данных), главную треть для корня (на 4 полутона выше, чем корень) и идеальную пятую для корня (на 7 полутонов выше, чем корень). ); это может быть символизировано 0-4-7
Малая триада , символизирует 0-3-7
Дополненная триада , символизирует 0-4-8
Уменьшенная триада , символизированная 0-3-6
Так, например, если вы хотите сделать мажорную триаду , отметили C
, CM
, Cmaj
, вам нужно будет три отметили:
- 0: корень , в данном случае
C
- 4: минорная треть , на 4 полутона выше корня; это
E
- 7: идеальный пятый , 7 полутонов выше, чем корень:
G
Это то , что 0-4-7
, 0-3-7
, 0-4-8
и 0-3-6
условные обозначения используются выше среднего! Для седьмых аккордов используйте следующий шаблон:
На сегодня все! Теперь удивите меня удивительным кодом ... Если у вас есть какие-либо вопросы, добавьте несколько комментариев ниже.
Db+
это Db F A
нет D # или G там. Это, возможно, немного больше теории, чем необходимо, формулы были важной частью. Если вы действительно хотите включить все восемь из седьмых аккордов, перечисленных в википедии, вы должны указать вход. Я предполагаю, что выход ascii-art из фортепиано и гитары является гибким.