El apocalipsis zombie ha llegado y el mundo está llegando a su fin. De repente, alguien descubre una fórmula que toma la hora, los minutos y el día actuales, y escupe la nota perfecta para tocar en un piano que mata instantáneamente a cada zombi que lo escucha. Desafortunadamente, solo queda un pianista en el mundo, y se ha olvidado de cómo leer notas, pero aún sabe leer partituras. Por supuesto, esto es algo muy sensible al tiempo, por lo que parece natural que una computadora lo haga. 1
Su desafío es tomar una nota, como G
y enviar la nota colocada en un pentagrama (en clave de sol), de esta manera:
-----
-----
|
---|-
|
--O--
-----
Especificación:
- Debe generar un pentagrama de líneas alternas de
-----
(5 guiones) y una línea en blanco. Habrá 5-----
s en total. La nota debe superponerse sobre este personal. - La entrada especificará dónde se encuentra la nota. La entrada será:
- un opcional
H
oL
, especificando "alto" o "bajo" - una carta de
A
aG
, especificando el tono - un opcional
#
ob
, especificando agudo o plano.
- un opcional
- La "nota" se define como:
- Uno
O
(O mayúscula) alineado al centro del pentagrama, que está en el lugar de la nota. (La línea superior esHF
(F alta) y la línea inferior esE
(una E normal). - Tres
|
s (barras verticales), el tallo, que será:- un espacio a la izquierda de la nota y hacia abajo (comenzando un espacio debajo de la nota) si la nota está en la línea media (
B
) o arriba, o - un espacio a la derecha de la nota y hacia arriba (comenzando un espacio por encima de la nota) si la nota está debajo de la línea media.
- un espacio a la izquierda de la nota y hacia abajo (comenzando un espacio debajo de la nota) si la nota está en la línea media (
- Un
#
ob
un espacio directamente a la izquierda de la nota si se especifica en la entrada.
- Uno
- Deben agregarse líneas contables si la nota es demasiado alta o baja. Estas líneas serán
---
(solo 3 guiones de ancho, en lugar de 5) y solo aparecerán si la nota está en o arriba / abajo (para las líneas de contabilidad superior / inferior respectivamente) las líneas de contabilidad. - Se pueden colocar espacios extraños en cualquier lugar que desee; por ejemplo, podría hacer que las líneas en blanco tengan espacios o después de las líneas del libro mayor si le ayuda a guardar los caracteres.
Aquí hay una visualización, para comprender la especificación más fácilmente, con todos los nombres de las notas al lado de las líneas:
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)
Aquí hay algunos ejemplos más que puede usar para probar su programa:
Entrada: HG#
#O
-|---
|
-|---
-----
-----
-----
Entrada: LAb
-----
-----
-----
-----
-----
|
--|
|
bO-
Entrada: HB
O
|--
|
-|---
-----
-----
-----
-----
Entrada: C
-----
-----
-----
-----
|
---|-
|
-O-
Este es el código de golf , por lo que el código más corto en bytes ganará.
1: exposición más realista evar! :-PAG
#
ob
a la derecha de la nota en lugar de a la izquierda; ¿Es realmente lo que se requiere?