Desafio
Dada uma lista de anotações, você deve retornar a tablatura correspondente.
Notas
As notas devem estar no intervalo de A a G, inclusive, e o intervalo de oitavas, de 2 a 6, inclusive. O formato é de oitava de nota, #
representando um nítido e b
representando um plano. Por exemplo: A7
ou F#3
.
Guias
Tablatura é um método de escrever música, representando diagramaticamente o instrumento. Geralmente é representado como cinco linhas com números.
Os números escritos nas linhas representam o traste usado para obter o tom desejado. Por exemplo, o número 3 escrito na linha superior da pauta indica que o jogador deve pressionar o terceiro traste no E alto (primeira corda). O número 0 indica a porca - isto é, uma corda aberta.
Os números do traste não podem ser maiores que 22 e o violão é de seis cordas.
A tablatura deve estar no formato ASCII padrão . Você não deve incluir nenhum indicador de técnica (martelo, deslize etc.). Separe cada nota por cinco traços. No caso de dois dígitos, reduza o número de traços para quatro.
O início da guia deve ficar assim:
e |-----
B |-----
G |-----
D |-----
A |-----
E |-----
E o final deve se parecer com:
-----|
para todas as linhas.
(fonte: justinguitar.com )
Exemplo
Input: C3 C3 D3 E3 F3
Output:
e |-----------------------------------|
B |-----------------------------------|
G |-----------------------------------|
D |-----------------0-----2-----3-----|
A |-----3-----3-----------------------|
E |-----------------------------------|
Ganhando
O código mais curto vence
Respostas:
Python 3 -
329328319300Este é o meu primeiro post no codegolf.se e provavelmente não é o ideal; Eu li muitos posts aqui, mas fiz meu primeiro código de golfe já talvez 50 horas atrás. Queria tentar, no entanto!
EDIT: Removido 1 byte, não precisava gerar um traço extra lá
EDIT 2: Removidos 9 bytes, removidos alguns espaços da sequência de notas
EDIT 3: Removidos 19 bytes convertendo
filter()
para um geradorUm pouco destroçado:
fonte