Python + Piet one-liners: 417 caracteres + 7391 7107 executando codels
Este script Python produz uma imagem 7393 x 2; o bloco 2x2 mais à direita do qual é um "sentinela" que encerra o programa; então não estou contando isso; e a segunda linha é branca. Provavelmente, eu posso aprofundar ainda mais o código do piet usando cadeias de adição / subtração / multiplicação em vez do ingênuo algoritmo binário ... mas não quero dar uma solução para um futuro quebra-cabeça.
Não vou postar a imagem aqui, por causa de suas dimensões ridículas. Se você quiser vê-lo, execute o código python e canalize a saída para um arquivo .ppm. Em seguida, converta o .ppm em um .gif e execute a saída no Rapapaing . (alternativamente, use um intérprete Piet que não seja da Web e que gere .ppm)
A='P=lambda A:reduce(lambda(D,H,B),P:(D[P/3:]+D[:P/3],H[P%3*2:]+H[:P%3*2],B+"".join("%i "%H[(D[0]/P)%2]for P in[1,2,4])),map(" A ! @ B".find,A),([1,3,2,6,4,5],[0,192,192,255,0,255],"P3 %i 2 255 "%(len(A)+2)))[2]+"255 "*4+"0 0 "+"255 "*len(A)*3+"255 0 0 "*2;B=lambda D:["@!%s","@@!%s!"][D%2]%B(D/2)if 1<D else"";print P("".join("A%sB"%B(ord(D))for D in"A=%s;exec A[:-13]"%`A`)+" ");exec A[:-13]';exec A[:-13]
edit: jogou um pouco a piet ao reduzir o peso de Hamming dos nomes das variáveis.
menos golf pre-quine :
Esta é uma versão anterior, antes que eu percebesse que poderia transformá-la em uma linha. É um pouco mais fácil de entender. A função P converte um conjunto de instruções especiais em Piet; e a função p pega um número inteiro e produz uma sequência de instruções para criar esse número inteiro na pilha. Eu só estou usando as instruções =,+,:,|
, então isso provavelmente poderia ser mais eficiente ... mas eu meio que gosto de ter um compilador Piet completo (das sortes) na fonte.
s="""def P(s):
l=len(s)+1;R="P3 %i 2 255 "%(l+2);C=[1,3,2,6,4,5];V=[0,192,192,255,0,255]
for x in map("=|^+-*/%~>.,:@$?#!".find,"="+s):
C=C[x//3:]+C[:x//3];V=V[x%3*2:]+V[:x%3*2]
for i in [1,2,4]:R+="%i "%V[(C[0]//i)%2]
return R+"255 "*4+"0 0 "+"255 "*l*3+"255 0 0 "*2
p=lambda x:[":+%s","::+%s+"][x%2]%p(x/2)if x/2 else""
print P("".join("|%s!"%k(ord(c))for c in "s="+`s`+";exec s[:-13]"))
exec s[:-13]"""
exec s[:-13]
1
é um quine em vários idiomas. Então você pode dizer que é um programa J que imprime um programa Golfscript que imprime um ...... e assim por diante.