Étant donné une partition musicale ascii, vous devez être en mesure de produire la note et sa longueur correspondante. La partition contiendra entre 5 et 15 notes incluses et sera transcrite sur une portée. Une portée est composée de cinq lignes horizontales comprenant - (moins) caractères séparés par des lignes d'espaces. La ligne du bas de la portée équivaut à la note «E». La ligne d'espaces immédiatement au-dessus de la ligne inférieure indique un «F», et est d'un pas plus élevé que le «E» en dessous. Cela continue comme ci-dessous. Notez que les notes remontent uniquement à «G» avant de recommencer à «A». Voir ci-dessous:
F ----------
E
D ----------
C
B ----------
A
G ----------
F
E ----------
Notez que les lettres ne sont pas incluses dans l'entrée. Les notes sont superposées au-dessus de la portée en utilisant un caractère ao (ooh minuscule) pour indiquer la «tête de note». Cette tête de note indique la fréquence de la note, et donc sa représentation alphabétique comme ci-dessus. Par exemple, une note placée sur la partition comme ci-dessous indique un «A»:
----
----
----
o
----
----
Une note, comme le «A» ci-dessus, est appelée «note entière» et serait jouée pendant un temps entier. D'autres durées peuvent être indiquées en incluant une «tige» s'élevant de la note, et entre zéro et trois «drapeaux». Une tige est composée de trois | (pipe ou barre verticale) empilés immédiatement au-dessus de la tête de la note. Une tige sans drapeau est considérée comme une «noire» et joue pendant un quart de temps. Les drapeaux sont des caractères \ (barre oblique inverse), et la main sur le côté droit de la tige. Chaque tige divise par deux le temps pendant lequel la note est jouée. La longueur de chaque note sera l'une des suivantes: une note entière, une noire, une huitième, une seizième ou une trente-seconde. Voici à quoi ressemblerait chaque type de note A:
--------------------
----|---|\--|\--|\--
| | |\ |\
----|---|---|---|\--
o o o o o
--------------------
--------------------
Mettre plus d'une note ensemble vous donne un score. Chaque note peut être considérée comme ayant une largeur de quatre caractères, une note se trouvant dans la première colonne de chaque bloc de quatre caractères. Par exemple :
|\
----|\--|\----------
|\ | |\
----o---|---o---|\--
| o |
|---------------o---
|
o-------------------
--------------------
L'exemple ci-dessus contient les notes suivantes, dans l'ordre: une noire "G", une trente-deuxième note "D", une huitième note "C", une note entière "D" et une seizième note "B". Chaque note de votre sortie doit être au format lettre / longueur, où la lettre est AG et la longueur est la fraction de la longueur de la note par rapport à une note entière. Par exception, la longueur et / le caractère ne doivent pas être imprimés si la note est une note entière. Chaque note de votre sortie doit être séparée par un seul espace. Par conséquent, pour le score ci-dessus, votre code doit générer les éléments suivants:
G/4 D/32 C/8 D B/16
- Les notes seront dans la plage suivante: EFGABCDE F. Notez que seule la lettre doit être imprimée, l'octave est ignorée.
- Notez que le nombre de lignes d'entrée varie de 9 à 12, car les notes avec un quart de temps ou moins sur la ligne D ou supérieure nécessiteront plus de lignes pour s'afficher complètement.
- Il n'y a pas de demi-note dans ce cas.
Le code le plus court gagne (les espaces ne comptent pas).
Modifier: correction d'une erreur d'espacement dans une entrée.
Quelques exemples d'entrées:
|\
----|\--|-------------------
|\ | |
|---|---o---------------o---
| o |\
o---------------|\--|\------
|\ |\ |\
------------|\--|\--o-------
|\ o
------------o---------------
Sortie: B / 8 C / 8 D / 8 E / 32 F / 32 G / 32 D
----------------o-------------------
o
------------o-----------------------
o
--------o---------------------------
o
----o-------------------------------
o
o-----------------------------------
Sortie: EGBDFFACE
|\
|\
|\
------------o-------|-----------
| o | |\
|---|\--------------|---|\------
| | o |\
o---|---|\--------------o---|\--
o |\ |\
--------|\------------------|---
o o
--------------------------------
Sortie: B / 4 A / 8 F / 32 F / 32 EC / 4 B / 32 F / 16