Piet, 188 53 46 41 bytes
5bpjhbttttfttatraaearfjearoaearbcatsdcclq
Intérprete online disponível aqui.
Este código piet faz o padrão (n>0)-(n<0)
, pois não há verificação de sinal embutida. De fato, não há nada menos do que embutido, portanto uma descrição mais precisa desse método seria (n>0)-(0>n)
.
O texto acima representa a imagem. Você pode gerar a imagem colando-a na caixa de texto na página do intérprete. Por conveniência, forneci a imagem abaixo, onde o tamanho do codel é 31 pixels. A grade existe para facilitar a leitura e não faz parte do programa. Observe também que este programa não cruza nenhum código branco; siga os codels coloridos ao redor da borda da imagem para seguir o fluxo do programa.
Explicação
Instruction Δ Hue Δ Lightness Stack
------------ ----- ----------- --------------------
In (Number) 4 2 n
Duplicate 4 0 n, n
Push [1] 0 1 1, n, n
Duplicate 4 0 1, 1, in, in
Subtract 1 1 0, in, in
Duplicate 4 0 0, 0, in, in
Push [4] 0 1 4, 0, 0, in, in
Push [1] 0 1 1, 4, 0, 0, in, in
Roll 4 1 0, in, in, 0
Greater 3 0 greater, in, 0
Push [3] 0 1 3, greater, in, 0
Push [1] 0 1 1, 3, greater, in, 0
Roll 4 1 in, 0, greater
Greater 3 0 less, greater
Subtract 1 1 sign
Out (Number) 5 1 [Empty]
[Exit] [N/A] [N/A] [Empty]
Para reduzir ainda mais o tamanho do arquivo, eu precisaria alterar o programa (gasp) em vez de apenas comprimir o arquivo como eu estava fazendo. Gostaria de remover uma linha que reduzisse para 36. Também posso desenvolver meu próprio intérprete, que teria um formato de entrada muito menor, pois alterar o código para torná-lo menor não é o objetivo do código golf.
Os mods me disseram que o tamanho total do arquivo é o que conta para o código Piet. Como o intérprete aceita texto como entrada válida e o texto bruto possui uma contagem de bytes muito menor do que qualquer imagem, o texto é a escolha óbvia. Peço desculpas por ser atrevido com isso, mas não faço as regras. A meta discussão sobre isso deixa clara minha opinião sobre o assunto.
Se você acha que isso vai contra o espírito de Piet ou gostaria de discutir isso por qualquer motivo, confira a discussão sobre meta .