Des lignes directrices
Tâche
Étant donné deux notes, entrées sous forme de chaînes ou de listes / tableaux, calculez le nombre de demi-tons qui les séparent (y compris les notes elles-mêmes), en sortie sous forme de nombre.
Explication d'un demi-ton:
Un demi-ton est une étape vers le haut ou vers le bas du clavier. Un exemple est C à C #. Comme vous pouvez le voir ci-dessous, la note C est sur une note blanche et C # est la note noire juste au-dessus. Les demi-tons sont les sauts d'une note noire à la prochaine note blanche, vers le haut ou vers le bas, à l'exception de:
- B à C
- C à B
- E à F
- F à E
Exemples
'A, C' -> 4
'G, G#' -> 2
'F#, B' -> 6
'Bb, Bb' -> 13
Règles
- La plus grande distance entre deux notes est de 13 demi-tons.
- La deuxième note entrée sera toujours au-dessus de la première note entrée.
- Vous pouvez prendre l'entrée sous forme de chaîne ou de tableau / liste. Si vous le prenez comme une chaîne, les notes seront séparées par des virgules (par exemple
String -> 'A, F'
,Array -> ['A', 'F']
). - Vous pouvez supposer que vous recevrez toujours deux notes valides.
- Les objets tranchants seront désignés par
#
et les appartements seront désignés parb
- Votre code doit prendre en charge les équivalents enharmoniques (par exemple, il doit prendre en charge F # et Gb)
- Votre code n'a pas besoin de prendre en charge les notes nommées avec, mais peut être nommé sans tranchant ou plat (c'est-à-dire que vous n'avez pas besoin de prendre en charge E # ou Cb). Des points bonus si votre code le prend en charge.
- Votre code n'a pas besoin de prendre en charge les doubles objets tranchants ou doubles.
- Vous pouvez supposer que si vous obtenez les deux les mêmes notes ou la même hauteur (par exemple 'Gb, Gb' ou 'A #, Bb'), la seconde ne sera pas exactement une octave au-dessus de la première.
- C'est le golf de code donc la réponse avec le moins d'octets gagne.
Cb
ou E#
? Qu'en est-il des doubles objets tranchants / plats?
(X, Y]
si C à C # est 1 demi-ton et C à C est 12 demi-tons.
G -> G#
car ils sont tous les deux inclus.