Un diagramme de manche de guitare ressemble à ceci:
0 1 2 3 4 5 6 7 8 9 10 11 12 <- Fret number (0 means it's open)
|-E--F--F#-G--G#-A--A#-B--C--C#-D--D#-E
|-B--C--C#-D--D#-E--F--F#-G--G#-A--A#-B
|-G--G#-A--A#-B--C--C#-D--D#-E--F--F#-G
|-D--D#-E--F--F#-G--G#-A--A#-B--C--C#-D
|-A--A#-B--C--C#-D--D#-E--F--F#-G--G#-A
|-E--F--F#-G--G#-A--A#-B--C--C#-D--D#-E
Comme vous pouvez le voir, la première chaîne (du haut) ouverte est un E. La première case de la première corde est un F. La quatrième case de la troisième corde est un B. Notez que la première note est la case zéro, pas la première.
Cela peut être écrit avec des chiffres sur le format string, fret. Les cordes sont numérotées de 1 à 6 de haut en bas. Les frettes sont numérotées de 0 à 12 de gauche à droite. Le premier Eest donc 1, 0. Quelques autres exemples:
1, 0 --> E
1, 1 --> F
3, 5 --> C
5, 1 --> A#
6, 6 --> A#
Défi:
Prenez des Npaires de nombres ( set f) et générez une succession de notes délimitées.
- L'entrée peut être dans n'importe quel format approprié. tuples, matrice 2D, deux listes séparées, une liste entrelacée (chaîne, frette, chaîne, frette ...) etc.
- La tonalité de sortie doit être séparée, mais le délimiteur est facultatif (virgule, espace, tiret ...). La sortie peut être en majuscule ou en minuscule.
s(pour la chaîne) sera dans la plage[1, 6](vous pouvez choisir d'avoir i 0 indexé)f(pour la frette) sera dans la plage[0, 12]
Cas de test et exemples:
1 4 5 2 1 3 <- String
4 2 6 3 5 1 <- Fret
G# E D# D A G#
6 2 3 1 4 2 3 2 2 2 6 5 2
0 1 2 3 4 5 6 7 8 9 10 11 12
E C A G F# E C# F# G G# D G# B
3 3 3 3 3 3 3 3 3 3 3 3 3 <- String
0 3 5 0 3 6 5 0 3 5 3 0 0 <- Fret
G A# C G A# C# C G A# C A# G G
// The same test case, but different input and output format:
(3,0)(3,3)(3,5)(3,3)(3,6)(3,5)(3,0)(3,3)(3,5)(3,3)(3,0)(3,0)
G,A#,C,G,A#,C#,C,G,A#,C,A#,G,G
Bonne chance et bon golf!