Ah não! Eu tenho um teste teórico em breve e ainda não me lembro das escalas! Ajude-me a lembrar das minhas principais escalas, imprimindo o seguinte:
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♭
Isso é código-golfe, então o código mais curto vence. Você pode usar #
e b
símbolos em vez de ♯
e ♭
respectivamente.
Editar: se você estiver usando ♯
e ♭
sinais, você só precisa contá-los como um único byte cada. Isso é para não dar uma desvantagem injusta.
code-golf
kolmogorov-complexity
music
ericw31415
fonte
fonte
♭
: Tanto para Monoespaçada em elementos de códigoRespostas:
Carvão ,
6665 bytes (se estiver usando # eb)Experimente online! Link é a versão detalhada do código. Explicação:
Imprima os caracteres no
0
sentido7
inverso e reflita com sobreposição. As listas normalmente são impressas para baixo; portanto, a impressão para cima é impressa para a direita; giraremos tudo no lugar no final.Inicie uma nova linha e imprima 7 planos e 7 objetos cortantes, com um espaço entre eles.
Deixe uma linha em branco e imprima 15
-
s.Pegue os números de 0 a 7, duplique-os, adicione 1 e reduza o módulo 7. Faça um loop sobre o resultado.
Deixe uma linha em branco e, em seguida, pegue uma fatia de 15 caracteres da sequência de notas em triplicado, começando no valor atual.
Na próxima linha, pegue uma fatia de 15 caracteres de apartamentos, espaços e objetos cortantes, cada um repetido 7 vezes.
Depois de imprimir todas as notas, gire tudo no lugar.
fonte
♯
e♭
como 1 byte de cada vez de 3.Ruby , 113 bytes (
131 126 108105 com # eb)Experimente online!
Ruby , 116 bytes (108 com # eb)
Experimente online!
Ruby , 126 bytes (118 com # eb)
Experimente online!
Ruby , 131 bytes com # eb
Experimente online!
fonte
♯
e♭
como 1 byte de cada vez de 3.Python 3 , 135 bytes
contando ♯ e ♭ como 1 byte cada
graças a Zacharý por -6 bytes.
Experimente online!
fonte
GNU sed ,
148144 + 1 = 145 bytes+1 byte para
-r
sinalizador.Experimente online!
Explicação
Primeiro, insira um tipo de modelo:
Observe o espaço à esquerda e à direita na primeira linha.
Em um loop, pegue o primeiro número da última linha e substitua-o por partes da penúltima linha da seguinte maneira:
Como você pode ver, o espaço inicial (captura 2) é usado para substituir o caractere após o
B
.Quando
0
chegar, substitua o espaço inicial porb
. O loop continua, mas, em vez de substituir#
s por espaços, em cada linha subseqüente, um espaço é substituído por ab
.Por fim, faça uma limpeza: remova o caractere inicial de cada linha e substitua
0b
por0
.fonte
Befunge,
134132130 bytesExperimente online!
Explicação
'0'+abs(row)
(o número da escala) e calculamos(row>0)+(row!=0)
a pesquisa como natural, nítida ou plana na tabela#b
(você verá isso no início da terceira linha do código).30 + row*4
. Isso acabará sendo o mod 7, então pense nisso como a sequência de repetição 2,5,1,4,0,3,6 (ou seja, CFBEADG).'A' + n%7
. Se é nítido ou plano, é determinado olhando para cimai%7
em uma tabela. A tabela é inicialmente verdadeira, uma vez que a primeira escala é composta por objetos pontiagudos.(offset+3)%7
.fonte
Bubblegum , 107 bytes
Limiar de chiclete
Experimente online!
fonte
JavaScript (ES6),
130124 bytesOu
128121 bytes com uma nova linha principal.fonte
C,
212189186185 bytesAgradecemos a Jonathan Frech por salvar um byte!
Experimente online!
Desenrolado:
fonte
>-
pode ser+
.i=~!printf
vez dei=-1,printf
e em\b
vez de\10
Geléia ,
57 56 5554 bytes-1 byte graças a EriktheOutgolfer (use
7ŒR
para substituir-7r7
)Um programa completo imprimindo a saída desejada (usando
#
,b
).Experimente online!
Quão?
fonte
CJam ,
10910694 bytesExperimente online
fonte
Java 8, 255 bytes
Contando ♯ e ♭ como 1 byte cada.
Explicação:
Experimente online.
fonte