A tarefa é um desafio quine bastante simples, com uma reviravolta, você deve exibir seu código-fonte na forma de uma pirâmide. A forma de uma pirâmide é definida abaixo:
1
234
56789
ABCDEFG
HIJKLMNOP
QRSTUVWXYZa
bcdefghijklmn
......etc......
A principal limitação desse desafio é que seu quine deve conter exatamente exatamente bytes para não obstruir o padrão da pirâmide. Por exemplo, os seguintes tamanhos de programa funcionariam:
1-byter: 1st layer of the pyramid (not allowed by definition of a quine).
4-byter: 1st and 2nd layers of the pyramid.
9-byter: 1st, 2nd and 3rd layers of the pyramid.
etc...
Portanto, se seu programa foi:
QWERTY
Não seria válido, porque organizaria como:
Q
WER
TY
No entanto, se o seu programa fosse QWERTYUIO, tudo bem:
Q
WER
TYUIO
Regras
- As brechas padrão são obviamente proibidas, não é possível ler sua própria fonte.
- A pirâmide deve estar centralizada, caracteres finais são permitidos, mas não são necessários.
- Além disso, qualquer personagem pode ser usado para centralizar a pirâmide, não precisa ser
(char)32
.
- Além disso, qualquer personagem pode ser usado para centralizar a pirâmide, não precisa ser
- Sua solução deve poder ser transformada em pirâmide.
- Ele deve manter a ordem original do seu código-fonte.
- Seu código-fonte NÃO pode conter o caractere usado para formatar a pirâmide.
- Por exemplo, se seu código-fonte contiver um espaço, você precisará de outro caractere para o formato.
- Você pode usar comentários em seu quine para "preencher" o tamanho correto.
- Obviamente, estes devem ser produzidos como parte da solução.
- Se o programa contiver novas linhas / guias, elas não fazem parte do quine e devem ser omitidas na saída.
- A forma é contada em caracteres, não em bytes; se a forma estiver malformada, você não está fazendo certo.
A pontuação mais baixa possível aqui deve ser 4.
code-golf
ascii-art
restricted-source
quine
Urna de polvo mágico
fonte
fonte
Respostas:
05AB1E , 36 bytes
Experimente online!
Se
trailing characters are allowed
também significa no final da saída,0"D34çýā·<£.c"D34çýā·<£.c
é uma camada mais curta com 25 bytes.fonte
34ç
é a base de todos os 05AB1E quines, não é haha? Além disso, não tenho certeza de como me sinto sobre a quantidade aleatória de novas linhas à direita ... Eu preferiria que outra pessoa fizesse essa ligação (qual é a norma, é permitido 1 rastreamento / precedimento?) Que parece super-avançado.ā·<
eu usei9ÅÉ
(no 25 Byter, não pensou sobre a nova linha de fuga ..)Java 11,
324256227 bytes-29 bytes graças a @JoKing .
Saídas com espaços à esquerda para fazer o triângulo. (Observe que os espaços em branco entre
var s
eint i
são tabulações, não espaços.)Experimente online.
Explicação:
quine -part:
var s
contém o código-fonte não formatado String%s
é usado para colocar essa String em si mesma coms.format(...)
%c
,%1$c
E34
são usados para formatar as aspas duplas ("
)%%
é usado para formatar o%
s.format(s,34,s)
coloca tudo juntoParte do desafio:
O que para com um
java.lang.StringIndexOutOfBoundsException: begin 225, end 256, length 226
erro noString#substring(int,int)
método, a iteração após a impressão do resultado (o que é bom de acordo com a meta ).fonte
s=s.format
separar quando pode ter o formato no loop%%
na string e apenas uma%
no código real, mas isso significa que os comentários são obrigatórios///
na string para que a string seja longa o suficiente para que ela vá para a iteração esperada para imprimir tudo, antes de parar com aStringIndexOutOfBoundsException
for.substring
. E com apenas dois finais//
no final do programa real, pois ele também imprime dois finais//
. :)Python 2 , 81 bytes
Experimente online!
Uma avaliação avalia que usa espaços como o caractere de preenchimento.
fonte
;)
Perl 6 , 67 bytes
Experimente online!
Usei alguns caracteres unicode para extrair essa camada extra. Saídas usando espaços:
Explicação:
fonte
Python 2 , 169 bytes
Usa
0
para formatar a pirâmide.Experimente online!
Python 2 , 147 bytes
Isso usa a regra Se o programa contém novas linhas / guias, elas não fazem parte do quine e devem ser omitidas na saída.
Experimente online!
fonte
Gol> <> , 36 bytes
Experimente online!
uma versão ainda mais nova, 36 bytes
Eu me sinto tão perto de conseguir uma linha mais curta, grrrr ....
Experimente online!
versão ainda mais nova, 36 bytes
O código dessa pessoa é menor, mas ainda sai da mesma quantidade, infelizmente, o comentário ocupa o restante do espaço.
Experimente online!
versão um pouco mais nova, 36 bytes
Wowza! Hei, eu apenas usei isso para preencher um pouco de espaço, mas o programa funciona, para jogar golfe, usei alguns valores pré-pressionados em vez de usar variáveis!
Experimente online!
Versão antiga, 42 bytes
Isso tem uma nova linha à direita e tem mais caracteres do que eu gostaria ...
Eu vou jogar isso severamente ...
Experimente online!
fonte
Limpo , 256 bytes
Experimente online!
Praticamente o quine padrão, convenientemente também um template quine, com a função de formatação adicionada.
fonte
R ,
169144 bytesExperimente online!
Conseguiu encurtá-lo movendo-se para uma sequência que é analisada em vez de uma expressão que se foi. Teve que usar uma redefinição de um operador unário para colocá-lo sob os 144.
fonte
C # (compilador interativo do Visual C #) , 225 bytes
Usa um
STX
caractere como preenchimento. Não sabia que Kevin Cruijssen já havia enviado uma cópia exata em java antes de postar até que eu terminasse, mas decidi postar de qualquer maneira.Experimente online!
fonte