【发布时间】:2015-04-04 00:40:48
【问题描述】:
挑战
按字符数计算的最短代码,将根据用户输入输出乐谱。
输入将由一系列字母和数字组成 - 字母代表音符的名称,数字代表音符的长度。一个注释由 4 个垂直列组成。注释的头部将是大写 O,词干(如果存在)将是 3 行高,由管道字符 | 组成,标志将由反斜杠 \ 组成。
有效的音符长度是无、音符的 1/4、音符的 1/8、音符的 1/16 和音符的 1/32。
| |\ |\ |\
| | |\ |\
| | | |\
O O O O O
1 1/4 1/8 1/16 1/32
音符是五线谱上的位置,根据它们的音符名称:
----
D ----
C
B ----
A
G ----
F
E ----
所有输入都可以假定为有效且没有错误 - 每个音符在一行上用空格分隔,至少有一个有效音符。
测试用例
Input:
B B/4 B/8 B/16 B/32 G/4 D/8 C/16 D B/16
Output:
|\
--------------------------|---|\--------
| |\ |\ |\ | |\ |\
------|---|---|\--|\-----O----|--O----|\
| | | |\ | O |
-O---O---O---O---O----|--------------O--
|
---------------------O------------------
----------------------------------------
Input:
E/4 F/8 G/16 A/32 E/4 F/8 G/16 A/32
Output:
--------------------------------
--------------|\--------------|\
|\ |\ |\ |\
------|\--|\--|\------|\--|\--|\
| | | O | | | O
--|---|--O--------|---|--O------
| O | O
-O---------------O--------------
Input:
C E/32 B/8 A/4 B F/32 B C/16
Output:
------------------------------|\
|\ |\
----------|---|---------------|-
O | | O
---------O----|--O----|\-O------
|\ O |\
------|\--------------|\--------
|\ O
-----O--------------------------
代码计数包括输入/输出(即完整程序)。
【问题讨论】:
-
@Idigas - 已修复,SO 的预览!= 最终输出
-
我认为这是一个很棒的代码高尔夫!非常原创!
-
我不想更改规格。提出了挑战。我知道如何设计我的挑战,并且不会掉以轻心。
-
@Noldorin:拜托,哦,拜托,别再改标题了。当你在做的时候,我们为什么不把我所有的高尔夫问题都改成“代码高尔夫:确定激光是否击中目标”,甚至是“代码高尔夫:使用 _ 和 | 以 ASCII 艺术形式显示的七段显示”。这是荒唐的。我看到没有人抱怨这个标题。
-
至少“音符”怎么样?实际上,标题几乎没有提供有关内容的线索。
标签: language-agnostic code-golf rosetta-stone