Escriba el programa más corto que genera tablaturas de guitarra para los acordes dados como entrada.
Para que los guitarristas entre ustedes no tengan una ventaja, y para que sea determinista (y probablemente más fácil de codificar), estas son las únicas formas de los acordes autorizados:
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---
Tenga en cuenta que los 5 primeros acordes y los 7 últimos acordes de cada serie tienen formas diferentes.
Todos los acordes son simples acordes mayores o menores (sin séptima u otras variaciones).
También debes cuidar los pisos. Recordatorio:
A# = Bb
C# = Db
D# = Eb
F# = Gb
G# = Ab
B#, Cb, E# and Fb are not used
La salida debe incluir la primera columna con los nombres de los cables, como se muestra arriba. No , no tiene que incluir el nombre del acorde en la parte superior. Los acordes deben estar separados por 3 -
como se muestra arriba. Los 3 últimos -
son opcionales.
La entrada es una cadena que consiste en nombres de acordes, separados por espacios.
Un ejemplo de entrada es:
Bm Gb A E G D Em F#
y la salida correspondiente es:
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---