Napisz najkrótszy program, który generuje tabulatury gitarowe dla akordów podanych jako wejście.
Aby gitarzyści spośród was nie mieli przewagi i aby uczynić ją deterministyczną (i prawdopodobnie łatwiejszą do kodowania), oto jedyne dozwolone formy akordów:
Major chords:
E F F# G G# A A# B C C# D D#
e 0---1---2---3---4---0---1---2---3---4---5---6---
B 0---1---2---3---4---2---3---4---5---6---7---8---
G 1---2---3---4---5---2---3---4---5---6---7---8---
D 2---3---4---5---6---2---3---4---5---6---7---8---
A 2---3---4---5---6---0---1---2---3---4---5---6---
E 0---1---2---3---4---0---1---2---3---4---5---6---
Minor chords:
Em Fm F#m Gm G#m Am A#m Bm Cm C#m Dm D#m
e 0---1---2---3---4---0---1---2---3---4---5---6---
B 0---1---2---3---4---1---2---3---4---5---6---7---
G 0---1---2---3---4---2---3---4---5---6---7---8---
D 2---3---4---5---6---2---3---4---5---6---7---8---
A 2---3---4---5---6---0---1---2---3---4---5---6---
E 0---1---2---3---4---0---1---2---3---4---5---6---
Zauważ, że 5 pierwszych akordów i 7 ostatnich akordów z każdej serii mają różne formy.
Wszystkie akordy są prostymi większymi lub mniejszymi akordami (nr 7 lub inne odmiany).
Powinieneś także zadbać o mieszkania. Przypomnienie:
A# = Bb
C# = Db
D# = Eb
F# = Gb
G# = Ab
B#, Cb, E# and Fb are not used
Dane wyjściowe muszą zawierać pierwszą kolumnę z nazwami przewodów, jak pokazano powyżej. To nie nie muszą zawierać nazwę akordu na górze. Akordy muszą być oddzielone 3-
jak pokazano powyżej. Ostatnie 3 -
są opcjonalne.
Dane wejściowe to ciąg znaków składający się z nazw akordów oddzielonych spacjami.
Przykładowe dane wejściowe to:
Bm Gb A E G D Em F#
a odpowiednie wyjście to:
e 2---2---0---0---3---5---0---2---
B 3---2---2---0---3---7---0---2---
G 4---3---2---1---4---7---0---3---
D 4---4---2---2---5---7---2---4---
A 2---4---0---2---5---5---2---4---
E 2---2---0---0---3---5---0---2---