Linee guida
Compito
Dato due note, inserite come stringhe o liste / matrici, calcola quanti semitoni sono separati (comprese le note stesse), generando come un numero.
Spiegazione di un semitono:
Un semitono è un passo avanti o indietro della tastiera. Un esempio è da C a C #. Come puoi vedere sotto la nota C è su una nota bianca e C # è la nota nera solo una sopra di essa. I semitoni sono i salti da una nota nera alla nota bianca successiva, su o giù, ad eccezione di:
- Da B a C
- Da C a B.
- Da E a F.
- Da F a E
Esempi
'A, C' -> 4
'G, G#' -> 2
'F#, B' -> 6
'Bb, Bb' -> 13
Regole
- La distanza più grande tra due note è di 13 semitoni.
- La seconda nota immessa sarà sempre al di sopra della prima nota immessa.
- È possibile accettare input come una stringa o un array / elenco. Se si prende come una stringa, le note saranno separati da virgole (ad esempio
String -> 'A, F'
,Array -> ['A', 'F']
). - Puoi presumere che ti verranno sempre fornite due note valide.
- Gli oggetti taglienti saranno indicati come
#
e gli appartamenti saranno indicati comeb
- Il tuo codice deve supportare equivalenti enarmonici (ad es. Deve supportare sia F # che Gb)
- Non è necessario che il codice supporti le note a cui è stato assegnato un nome, ma che possono essere denominate senza un segno di spunta o piatto (ovvero non è necessario supportare E # o Cb). Punti bonus se il tuo codice lo supporta comunque.
- Non è necessario che il tuo codice supporti doppi taglienti o doppi piatti.
- Si può presumere che se si ottengono entrambe le stesse note o lo stesso tono (ad esempio "Gb, Gb" o "A #, Bb"), la seconda non sarà esattamente un'ottava sopra la prima.
- Questo è il codice golf, quindi vince la risposta con il minor numero di byte.
Cb
o E#
? Che dire di doppi taglienti / piatti?
(X, Y]
modo che C a C # sia 1 semitono e C a C sia 12 semitoni.
G -> G#
perché sono entrambi inclusi.