Richtlinien
Aufgabe
Berechnen Sie bei zwei als Zeichenfolgen oder Listen / Arrays eingegebenen Noten, wie viele Halbtöne (einschließlich der Noten selbst) voneinander entfernt sind, und geben Sie sie als Zahl aus.
Erklärung eines Halbtons:
Ein Halbton ist eine Stufe höher oder tiefer auf der Tastatur. Ein Beispiel ist C bis C #. Wie Sie unten sehen können, befindet sich die Note C auf einer weißen Note und C # ist die schwarze Note direkt darüber. Halbtöne sind die Sprünge von einer schwarzen Note zur nächsten weißen Note nach oben oder unten, mit Ausnahme von:
- B bis C
- C nach B
- E bis F
- F bis E
Beispiele
'A, C' -> 4
'G, G#' -> 2
'F#, B' -> 6
'Bb, Bb' -> 13
Regeln
- Der größte Abstand zwischen zwei Noten beträgt 13 Halbtöne.
- Die zweite eingegebene Note steht immer über der ersten eingegebenen Note.
- Sie können Eingaben entweder als Zeichenfolge oder als Array / Liste annehmen. Wenn Sie es als Zeichenfolge verwenden, werden die Noten durch Kommas getrennt (z
String -> 'A, F'
. B.Array -> ['A', 'F']
). - Sie können davon ausgehen, dass Sie immer zwei gültige Noten erhalten.
- Scharfe Stellen werden als
#
und flache Stellen als bezeichnetb
- Ihr Code muss Enharmonic-Entsprechungen unterstützen (z. B. muss er sowohl F # als auch Gb unterstützen)
- Ihr Code muss keine Notizen unterstützen, die mit, aber ohne Scharf oder Flach benannt werden können (dh Sie müssen E # oder Cb nicht unterstützen). Bonuspunkte, wenn Ihr Code dies unterstützt.
- Ihr Code muss keine Double Sharps oder Double Flats unterstützen.
- Sie können davon ausgehen, dass die zweite nicht genau eine Oktave über der ersten liegt, wenn Sie die gleichen Noten oder die gleiche Tonhöhe (z. B. 'Gb, Gb' oder 'A #, Bb') erhalten.
- Dies ist Codegolf, daher gewinnt die Antwort mit der geringsten Anzahl von Bytes.
Cb
oder sorgen E#
? Was ist mit Double Sharps / Wohnungen?
(X, Y]
dass C bis C # 1 Halbton und C bis C 12 Halbtöne sind.
G -> G#
weil sie beide enthalten sind.