Ach nein! Ich habe bald einen Theorie-Test und kann mich noch nicht an die Waage erinnern! Hilf mir, mich an meine wichtigsten Skalen zu erinnern, indem du Folgendes druckst:
7♯ - C♯ D♯ E♯ F♯ G♯ A♯ B♯ C♯
6♯ - F♯ G♯ A♯ B C♯ D♯ E♯ F♯
5♯ - B C♯ D♯ E F♯ G♯ A♯ B
4♯ - E F♯ G♯ A B C♯ D♯ E
3♯ - A B C♯ D E F♯ G♯ A
2♯ - D E F♯ G A B C♯ D
1♯ - G A B C D E F♯ G
0 - C D E F G A B C
1♭ - F G A B♭ C D E F
2♭ - B♭ C D E♭ F G A B♭
3♭ - E♭ F G A♭ B♭ C D E♭
4♭ - A♭ B♭ C D♭ E♭ F G A♭
5♭ - D♭ E♭ F G♭ A♭ B♭ C D♭
6♭ - G♭ A♭ B♭ C♭ D♭ E♭ F G♭
7♭ - C♭ D♭ E♭ F♭ G♭ A♭ B♭ C♭
Das ist Code-Golf, also gewinnt der kürzeste Code. Sie können #
und b
Symbole anstelle von ♯
und ♭
verwenden.
Bearbeiten: Wenn Sie ♯
und ♭
Zeichen verwenden, müssen Sie diese nur als ein einzelnes Byte zählen. Dies ist kein unfairer Nachteil.
code-golf
kolmogorov-complexity
music
ericw31415
quelle
quelle
♭
: Soviel zu Monospace-Schriften in Code-ElementenAntworten:
Holzkohle ,
6665 Bytes (bei Verwendung von # und b)Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Drucken Sie die Zeichen
0
in7
umgekehrter Reihenfolge und spiegeln Sie sie dann mit Überlappung. Listen werden normalerweise nach unten gedruckt, sodass beim Drucken nach oben tatsächlich nach rechts gedruckt wird. Wir werden alles am Ende drehen.Beginnen Sie eine neue Linie und drucken Sie 7 flache und 7 scharfe Stellen mit einer Lücke dazwischen.
Lassen Sie eine leere Zeile und drucken Sie 15
-
s.Nehmen Sie die Zahlen 0 bis 7, verdoppeln Sie sie, addieren Sie 1 und reduzieren Sie dann Modulo 7. Führen Sie eine Schleife über das Ergebnis.
Lassen Sie eine leere Zeile und nehmen Sie einen 15-stelligen Teil der dreifachen Notenfolge, beginnend mit dem aktuellen Wert.
Nehmen Sie in der nächsten Zeile eine 15-stellige Scheibe mit Ebenen, Leerzeichen und Spitzen, die jeweils siebenmal wiederholt werden.
Drehen Sie nach dem Drucken aller Notizen alles an seinen Platz.
quelle
♯
und♭
als jeweils 1 Byte anstatt 3 zählen.Ruby , 113 Bytes (
131 126 108105 mit # und b)Probieren Sie es online!
Ruby , 116 Bytes (108 mit # und b)
Probieren Sie es online!
Ruby , 126 Bytes (118 mit # und b)
Probieren Sie es online!
Ruby , 131 Bytes mit # und b
Probieren Sie es online!
quelle
♯
und♭
als jeweils 1 Byte anstatt 3 zählen.Python 3 , 135 Bytes
Zählen von ♯ und ♭ als jeweils 1 Byte
Dank an Zacharý für -6 Bytes.
Probieren Sie es online!
quelle
GNU sed ,
148144 + 1 = 145 Bytes+1 Byte für
-r
Flag.Probieren Sie es online!
Erläuterung
Fügen Sie zunächst eine Art Vorlage ein:
Beachten Sie das führende und nachfolgende Leerzeichen in der ersten Zeile.
Nehmen Sie in einer Schleife die erste Zahl aus der letzten Zeile und ersetzen Sie sie durch Teile der vorletzten Zeile wie folgt:
Wie Sie sehen, wird das ursprüngliche Leerzeichen (Capture 2) verwendet, um das Zeichen nach dem zu ersetzen
B
.Wenn das
0
erreicht ist, ersetzen Sie das ursprüngliche Leerzeichen durchb
. Die Schleife wird fortgesetzt, aber anstatt#
s durch Leerzeichen zu ersetzen , wird in jeder folgenden Zeile ein Leerzeichen durch a ersetztb
.Führen Sie abschließend eine kleine Bereinigung durch: Entfernen Sie das führende Zeichen aus jeder Zeile und ersetzen Sie es
0b
durch0
.quelle
Befunge,
134132130 BytesProbieren Sie es online!
Erläuterung
'0'+abs(row)
die Skalennummer auf und berechnen dann(row>0)+(row!=0)
, ob sie in der Tabelle natürlich, scharf oder flach ist#b
(dies wird am Anfang der dritten Codezeile angezeigt).30 + row*4
. Dies wird letztendlich Mod 7 sein, stellen Sie es sich also als die sich wiederholende Sequenz 2,5,1,4,0,3,6 (dh CFBEADG) vor.'A' + n%7
. Ob es scharf oder flach ist, wird durch Nachschlageni%7
in einer Tabelle festgestellt . Die Tabelle ist anfangs alle wahr, da die erste Skala alle scharfen Stellen ist.(offset+3)%7
.quelle
Bubblegum , 107 Bytes
Bubblegum Schwelle
Probieren Sie es online!
quelle
JavaScript (ES6),
130 bis124 ByteOder
128121 Bytes mit einer führenden Newline.quelle
C
212189186185 BytesVielen Dank an Jonathan Frech für das Speichern eines Bytes!
Probieren Sie es online!
Abgerollt:
quelle
>-
kann sein+
.i=~!printf
anstelle voni=-1,printf
und\b
anstelle von\10
Jelly ,
57 56 5554 Bytes-1 Byte dank EriktheOutgolfer (
7ŒR
zum Ersetzen verwenden-7r7
)Ein vollständiges Programm druckt die gewünschte Ausgabe (mit
#
,b
).Probieren Sie es online!
Wie?
quelle
CJam ,
10910694 BytesProbieren Sie es online aus
quelle
Java 8, 255 Bytes
Zählen von ♯ und ♭ als jeweils 1 Byte.
Erläuterung:
Probieren Sie es online aus.
quelle