Der Dal Segno und Da Capo sind zwei sehr häufig verwendete musikalische Begriffe. Sie bedeuten " vom Zeichen " (𝄋) bzw. " vom Anfang ".
Es gibt auch die Idee der Coda (𝄌), die das Ende eines Musikstücks darstellt. Es ist das, was nach dem "Hauptteil" des Stückes gespielt wird.
Ein DS al Coda ( Dal Segno al Coda ), zum Beispiel, bedeutet „gehen Sie auf die Segno , spielen , bis man dir sagt , zu dem Thema Koda , und dann gibt springen.“
Beschreibung
Ihre Aufgabe bei dieser Herausforderung ist es, Eingaben zu machen, die aus einer beliebigen Anzahl von Noten bestehen, die Dal Segnos und Da Capos enthalten können oder nicht, und dieselbe Musik mit den oben genannten Sprüngen "entfaltet" auszugeben, so dass die Wiederholungen wörtlich erweitert werden.
Eingang
Ihr Code sollte eine Folge von Noten oder Signalen (hier als alles andere als eine Note definiert) als Eingabe verwenden , die durch Leerzeichen in einer Zeichenfolge getrennt sind.
Hinweise sind alle
a
,b
,c
,d
,e
,f
, oderg
, optional mit einem#
oderb
angefügt (für die Zwecke dieser Herausforderung gibt es keinen Rhythmus).A
C
(Großbuchstabe c) steht für eine Coda- Kennzeichnung. Es wird immer entweder null oder zwei Coda- Markierungen geben; Die erste Coda- Markierung gibt an, von wo aus gesprungen werden soll, und die zweite gibt an, wohin gesprungen werden soll.Ein
S
(Großbuchstabe) steht für eine Signo- Markierung. Es gibt immer entweder null oder eine Signo- Markierung (en).Ein
F
(Großbuchstabe f) steht für eine feine Markierung. Dies "überschreibt" das Ende des Stücks - mehr dazu weiter unten. Es gibt immer entweder null oder eine feine Markierung (en).Jede der folgenden genauen Textzeichenfolgen steht für:
D.S. al fine
: Gehen Sie zum Signo und spielen Sie bis zum Ende des Stücks oder bis zur feinen Markierung (falls vorhanden).D.S. al coda
: Gehe zum Signo , spiele bis zur Coda , springe dann zur zweiten Coda- Markierung und spiele bis zum Ende des Stücks.D.C. al fine
Gehen Sie zu Beginn, spielen bis zum Ende oder: feine Markierung.D.C. al coda
: gehe zum Anfang, spiele bis zur Coda , springe dann zur zweiten Coda- Markierung und spiele bis zum Ende des Stückes.
Es wird immer ein Minimum von Null und ein Maximum von jeweils einer Saite pro Stück geben. Es wird niemals mehrere
al fine
s oder mehrereal coda
s in einem Stück geben.
Ausgabe
Ihr Code sollte in einem ähnlichen Zeichenfolgenformat ausgegeben werden: eine Liste von Notizen, die durch Leerzeichen getrennt sind.
Sie können immer davon ausgehen, dass die Ausgabe ein oder mehrere Zeichen lang ist.
Testfälle
In: a# bb c b a
Out:a# bb c b a
In: a S b D.S. al fine c
Out:a b b c
In: a S b C c D.S. al coda d C e
Out:a b c b e
In: a b F c d D.C. al fine e f
Out:a b c d a b
In: a b D.C. al fine c d F e f
Out:a b a b c d
In: a b C c d D.C. al coda e f C g g#
Out:a b c d a b g g#
In: a b D.C. al coda c d C e f C g g#
Out:a b a b c d g g#
In: a b S c d C D.C. al coda C D.S. al fine e f F g
Out:a b c d a b c d c d e f
In: a S b C c D.S. al coda C d D.S. al fine e F f
Out:a b c b d b c d e
In: a b C c d D.C. al coda e f F g g# C gb a# D.C. al fine
Out:a b c d a b gb a# a b c d e f
In: a F b C D.C. al coda C D.C. al fine
Out:a b a b a
In: C a S b D.C. al coda C c D.S. al fine d
Out:a b c b c d
In: a S b D.S. al coda C C c D.C. al fine
Out:a b b c a b c
In: a F C b C D.C. al coda D.C. al fine
Out:a b a a
Regeln
Die Markierungen erscheinen immer in einer logischen Reihenfolge. Das heißt, es wird niemals ein
S
Nachher gebenD.S.
und es wird immer eines Vorher usw. geben.Dies ist Code-Golf , also gewinnt der kürzeste Code in Bytes.