Un diagrama de diapasón de guitarra se ve así:
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
Como puede ver, la primera cadena (desde arriba) abierta es un E
. El primer traste en la primera cadena es un F
. El cuarto traste en la tercera cuerda es a B
. Tenga en cuenta que la primera nota es el traste cero, no la primera.
Esto se puede escribir con números en el formato string, fret
. Las cadenas están numeradas del 1 al 6 de arriba a abajo. Los trastes están numerados del 0 al 12 de izquierda a derecha. El primero E
es por lo tanto 1, 0
. Algunos otros ejemplos:
1, 0 --> E
1, 1 --> F
3, 5 --> C
5, 1 --> A#
6, 6 --> A#
Desafío:
Tome N
pares de números ( s
y f
) y genere una sucesión de notas delimitadas.
- La entrada puede estar en cualquier formato adecuado. tuplas, matriz 2D, dos listas separadas, una lista entrelazada (string, fret, string, fret ...) etc.
- El tono de salida debe estar separado, pero el delimitador es opcional (coma, espacio, guión ...). La salida puede ser mayúscula o minúscula.
s
(para la cadena) estará en el rango[1, 6]
(puede optar por indexar i 0)f
(para traste) estará en el rango[0, 12]
Casos de prueba y ejemplos:
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
¡Buena suerte y feliz golf!