O apocalipse zumbi chegou e o mundo está chegando ao fim. De repente, alguém descobre uma fórmula que leva a hora, minuto e dia atuais e cospe a nota perfeita para tocar em um piano que mata instantaneamente todos os zumbis que a ouvem. Infelizmente, resta apenas um pianista no mundo, e ele esqueceu de ler notas, mas ainda sabe ler partituras. Obviamente, isso é muito sensível ao tempo, por isso parece natural ter um computador. 1 1
Seu desafio é tomar uma nota, como G
, e enviar a nota colocada em uma pauta (na clave de sol), assim:
-----
-----
|
---|-
|
--O--
-----
Especificação:
- Você deve gerar uma equipe de linhas alternadas de
-----
(5 traços) e uma linha em branco. Haverá 5-----
s no total. A nota deve ser sobreposta a essa equipe. - A entrada especificará onde a nota está localizada. A entrada será:
- um opcional
H
ouL
, especificando "alto" ou "baixo" - uma letra de
A
paraG
, especificando o tom - um opcional
#
oub
, especificando afiado ou achatado.
- um opcional
- A "nota" é definida como:
- Um
O
(capital O) alinhado ao meio da pauta, que está no lugar da nota. (A linha superior éHF
(F alto) e a linha inferior éE
(E normal).) - Três
|
s (barras verticais), a haste, que será:- um espaço à esquerda da nota e indo para baixo (iniciando um espaço abaixo da nota) se a nota estiver na linha do meio (
B
) ou acima, ou - um espaço à direita da nota e subindo (iniciando um espaço acima da nota) se a nota estiver abaixo da linha do meio.
- um espaço à esquerda da nota e indo para baixo (iniciando um espaço abaixo da nota) se a nota estiver na linha do meio (
- Um
#
oub
um espaço diretamente à esquerda da nota, se especificado na entrada.
- Um
- Linhas de razão devem ser adicionadas se a nota for muito alta ou baixa. Essas linhas terão
---
(apenas 3 traços de largura, em oposição a 5) e aparecerão apenas se a nota estiver acima ou abaixo / abaixo (para as linhas de contabilidade superior / inferior, respectivamente) as linhas de contabilidade. - Espaços estranhos podem ser colocados em qualquer lugar que você desejar; por exemplo, você pode fazer com que as linhas em branco tenham espaços ou após as linhas do razão, se isso ajudar a salvar caracteres.
Aqui está uma visualização, para entender a especificação mais facilmente, com todos os nomes das notas ao lado das linhas:
HB
--- HA
HG
----- HF
HE
----- HD
HC
----- B
A
----- G
F
----- E
D
--- C
LB
--- LA
LG
--- LF
... (bottom cut off for brevity, you get the idea anyway)
Aqui estão mais alguns exemplos que você pode usar para testar seu programa:
Entrada: HG#
#O
-|---
|
-|---
-----
-----
-----
Entrada: LAb
-----
-----
-----
-----
-----
|
--|
|
bO-
Entrada: HB
O
|--
|
-|---
-----
-----
-----
-----
Entrada: C
-----
-----
-----
-----
|
---|-
|
-O-
Isso é código-golfe , então o código mais curto em bytes vencerá!
1: evar exposição mais realista! :-P
#
oub
à direita da nota e não à esquerda; é realmente o que é necessário?