Desafío
Dada una lista de notas, debe devolver la tablatura correspondiente.
Notas
Las notas deben estar en el rango de A a G inclusive y el rango de octava debe ser de 2 a 6 inclusive. El formato es nota-octava con #
representación de una nitidez y b
una plana. Por ejemplo: A7
o F#3
.
Pestañas
La tablatura es un método para escribir música, representando esquemáticamente el instrumento. Generalmente se representa como cinco líneas con números en ellas.
Los números que están escritos en las líneas representan el traste utilizado para obtener el tono deseado. Por ejemplo, el número 3 escrito en la línea superior del pentagrama indica que el jugador debe presionar hacia abajo en el tercer traste en la E alta (primera cuerda). El número 0 denota la tuerca, es decir, una cadena abierta.
Los números de traste no pueden ser mayores que 22 y la guitarra es de seis cuerdas.
La tablatura debe estar en el formato ASCII estándar . No debe incluir ningún indicador técnico (martillo, diapositiva, etc.). Separe cada nota por cinco guiones. En el caso de dos dígitos, reduzca el número de guiones a cuatro.
El comienzo de la pestaña debería verse así:
e |-----
B |-----
G |-----
D |-----
A |-----
E |-----
Y el final debería verse así:
-----|
para todas las lineas.
(fuente: justinguitar.com )
Ejemplo
Input: C3 C3 D3 E3 F3
Output:
e |-----------------------------------|
B |-----------------------------------|
G |-----------------------------------|
D |-----------------0-----2-----3-----|
A |-----3-----3-----------------------|
E |-----------------------------------|
Victorioso
El código más corto gana
Respuestas:
Python 3 -
329328319300Esta es mi primera publicación en codegolf.se, y probablemente no sea óptima; He leído muchas publicaciones aquí, pero hice mi primer código de golf tal vez hace 50 horas. Sin embargo, quería probar!
EDITAR: se eliminó 1 byte, no fue necesario generar un guión adicional allí
EDIT 2: se eliminaron 9 bytes, se eliminaron algunos espacios de la cadena de notas
EDITAR 3: se eliminaron 19 bytes mediante la conversión
filter()
a un generadorUn poco descabellado:
fuente