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 E
est 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 N
paires de nombres ( s
et 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!