Défi
Étant donné une liste de notes, vous devez renvoyer la tablature correspondante.
Remarques
Les notes doivent être comprises entre A et G inclus et la plage d'octave comprise entre 2 et 6 inclus. Le format est note-octave avec #
représentant un tranchant et b
représentant un plat. Par exemple: A7
ou F#3
.
Onglets
La tablature est une méthode d'écriture musicale, en représentant schématiquement l'instrument. Il est généralement représenté par cinq lignes avec des chiffres.
Les nombres qui sont écrits sur les lignes représentent la frette utilisée pour obtenir la hauteur souhaitée. Par exemple, le numéro 3 écrit sur la ligne supérieure de la portée indique que le joueur doit appuyer à la troisième case sur le haut E (première corde). Le numéro 0 indique l'écrou - c'est-à-dire une chaîne ouverte.
Le nombre de frettes ne peut pas être supérieur à 22 et la guitare est à six cordes.
La tablature doit être au format ASCII standard . Vous ne devez pas inclure d'indicateur de technique (marteau, glissade, etc.). Séparez chaque note par cinq tirets. Dans le cas de deux chiffres, réduisez le nombre de tirets à quatre.
Le début de l'onglet devrait ressembler à ceci:
e |-----
B |-----
G |-----
D |-----
A |-----
E |-----
Et la fin devrait ressembler à:
-----|
pour toutes les lignes.
(source: justinguitar.com )
Exemple
Input: C3 C3 D3 E3 F3
Output:
e |-----------------------------------|
B |-----------------------------------|
G |-----------------------------------|
D |-----------------0-----2-----3-----|
A |-----3-----3-----------------------|
E |-----------------------------------|
Gagnant
Le code le plus court gagne
Réponses:
Python 3 -
329328319300Ceci est mon premier article sur codegolf.se, et probablement pas presque optimal; J'ai lu beaucoup de messages ici, mais j'ai fait mon premier golf de code il y a peut-être 50 heures. Je voulais essayer, cependant!
EDIT: Suppression d'un octet, n'a pas eu besoin de générer un tiret supplémentaire
EDIT 2: Suppression de 9 octets, suppression de certains espaces de la chaîne de notes
EDIT 3: Suppression de 19 octets en convertissant
filter()
en un générateurUn peu non golfé:
la source