당신의 임무는 입력 (기능 또는 프로그램에서)으로 문자 (음악)의 순서를 취하고, 음악 상자에서와 같이 음악을 인쇄 (또는 리턴)하는 것입니다.
문자 ABCDEFG.()
는 입력으로 만 수신되며 입력은 비워지지 않습니다. 원하는 경우 소문자로 편지를받을 수도 있습니다.
길이가 3 인 빈 뮤직 박스입니다.
.......
.......
.......
보시다시피 줄의 길이는 7 자이며 오르골의 길이는 3이므로 3 줄입니다. .
뮤직 박스가 비어 있기 때문에 여기에 s 만 있습니다 . 음악을 넣어 보자!
먼저 뮤직 박스를 만듭니다. 이 예에서 입력은입니다 CDAG.DAG
.
길이 CDAG.DAG
는 8이므로 길이 가 8 인 오르골이 필요합니다.
.......
.......
.......
.......
.......
.......
.......
.......
그런 다음 한 번에 한 문자 씩 입력을 읽고 O
해당 위치에를 배치합니다.
첫 번째 문자는 C
입니다. 각 노트의 위치는 다음과 같습니다 (명확하게하기 위해 공백을 추가했습니다).
A B C D E F G
. . . . . . .
. . . . . . .
(and so on)
입력 문자가 인 .
경우 빈 줄을 인쇄합니다........
따라서 C
3 번째 캐릭터가됩니다. 상단의 뮤직 박스에 넣으십시오.
..O....
.......
.......
.......
.......
.......
.......
.......
우리는 다른 모든 문자에 대해이 과정을 반복합니다 (괄호 안의 텍스트는 메모를 표시하기 위해 출력하므로 안됩니다).
..O.... (C)
...O... (D)
O...... (A)
......O (G)
....... (.)
...O... (D)
O...... (A)
......O (G)
음악 상자가 작동하는 방식으로 인해 출력에서 O
, .
및 이외의 문자를 <insert newline here>
출력에 사용하면 올바른 음악이 재생되지 않습니다!
이것은 화음입니다.
(ACE)
이 코드는 음을 연주하기 위해 우리를 지시한다 A
, C
그리고 E
같은 시간에. .
코드에 일시 정지 (예 : a ) 가 없습니다 .
이것이 어떻게 쓰여지 는가 :
O.O.O...
그리고 이것이 음악에 나타날 수있는 방법입니다 : B(ACE)D
코드로 코드를받지 못할 것입니다. 즉, 유효하지 않습니다 : (AB(CD)EF)
또는 this : A(B())
, 코드가 비어 있지 않습니다. 즉, 유효하지 않습니다 :A()B
잘못된 입력을받지 못할 것입니다.
예 :
B(ACE)D
.O.....
O.O.O..
...O...
B
.O.....
GGABC
......O
......O
O......
.O.....
..O....
...
.......
.......
.......
A..F.C(DA).
O......
.......
.......
.....O.
.......
..O....
O..O...
.......
.(ABCDEF)
.......
OOOOOO.
출력에서 후행 / 앞 공백이 허용됩니다.
이것이 code-golf 이므로 가장 짧은 코드가 승리합니다!
()
두 번 포함될 수 있습니까 (예AB(CD)E(FG)
:) ??