Scrivi il programma più breve che genera le tablature per chitarra per gli accordi dati come input.
In modo che i chitarristi tra di voi non abbiano un vantaggio e per renderlo deterministico (e probabilmente più facile da codificare), ecco le uniche forme di accordi autorizzati:
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---
Notare che i primi 5 accordi e gli ultimi 7 accordi di ciascuna serie hanno forme diverse.
Tutti gli accordi sono semplici accordi maggiori o minori (non 7 o altre variazioni).
Dovresti occuparti anche degli appartamenti. Promemoria:
A# = Bb
C# = Db
D# = Eb
F# = Gb
G# = Ab
B#, Cb, E# and Fb are not used
L'output deve includere la prima colonna con i nomi dei cavi, come mostrato sopra. Essa non deve includere il nome dell'accordo sulla parte superiore. Gli accordi devono essere separati da 3 -
come mostrato sopra. I 3 finali -
sono opzionali.
L'input è una stringa composta da nomi di accordi, separati da spazi.
Un esempio di input è:
Bm Gb A E G D Em F#
e l'output corrispondente è:
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---