L'apocalisse di zombi è arrivata e il mondo sta finendo. Improvvisamente, qualcuno scopre una formula che prende l'ora, i minuti e il giorno correnti e sputa la nota perfetta per suonare su un piano che uccide all'istante ogni zombi che lo ascolta. Sfortunatamente, al mondo è rimasto solo un pianista e ha dimenticato come leggere le note, ma sa ancora leggere gli spartiti. Naturalmente, questa è una cosa molto sensibile al tempo, quindi sembra naturale che un computer lo faccia. 1
La tua sfida è prendere una nota, come G
, ed emettere la nota posizionata su uno staff (in chiave di violino), in questo modo:
-----
-----
|
---|-
|
--O--
-----
Specifica:
- È necessario produrre uno staff di righe alternate di
-----
(5 trattini) e una riga vuota. Ci saranno 5-----
s in totale. La nota deve essere sovrapposta a questo staff. - L'input specificherà dove si trova la nota. L'input sarà:
- un facoltativo
H
oL
, specificando "alto" o "basso" - una lettera da
A
aG
, specificando il tono - un optional
#
ob
, specificando sharp o flat.
- un facoltativo
- La "nota" è definita come:
- Uno
O
(O maiuscola) allineato al centro del rigo, che si trova al posto della nota. (La linea superiore èHF
(F alta) e la linea inferiore èE
(una E normale). - Tre
|
s (barre verticali), lo stelo, che sarà:- uno spazio a sinistra della nota e andando verso il basso (iniziando uno spazio sotto la nota) se la nota si trova sulla riga centrale (
B
) o sopra, oppure - uno spazio a destra della nota e andando verso l'alto (iniziando uno spazio sopra la nota) se la nota è sotto la linea di mezzo.
- uno spazio a sinistra della nota e andando verso il basso (iniziando uno spazio sotto la nota) se la nota si trova sulla riga centrale (
- Uno
#
ob
uno spazio direttamente a sinistra della nota se specificato nell'input.
- Uno
- Le righe di registro devono essere aggiunte se la nota è troppo alta o bassa. Queste linee avranno
---
(solo 3 trattini in larghezza, anziché 5) e appariranno solo se la nota è sopra o sopra / sotto (rispettivamente per le linee di registro superiore / inferiore) le linee di registro. - Spazi estranei possono essere posizionati ovunque tu voglia; ad esempio, potresti fare in modo che le righe vuote abbiano spazi o uno spazio dopo le righe del libro mastro se ti aiuta a salvare i caratteri.
Ecco una visualizzazione, per comprendere più facilmente le specifiche, con tutti i nomi delle note accanto alle righe:
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)
Ecco alcuni altri esempi che è possibile utilizzare per testare il programma:
Ingresso: HG#
#O
-|---
|
-|---
-----
-----
-----
Ingresso: LAb
-----
-----
-----
-----
-----
|
--|
|
bO-
Ingresso: HB
O
|--
|
-|---
-----
-----
-----
-----
Ingresso: C
-----
-----
-----
-----
|
---|-
|
-O-
Questo è code-golf , quindi vincerà il codice più breve in byte!
1: evar esposizione più realistica! :-P
#
ob
alla destra della nota piuttosto che alla sinistra; è davvero ciò che è richiesto?