Código golf: imprima uma imagem do código fonte.
Exigências
- Deve gerar a imagem do próprio código-fonte, não uma versão armazenada em outro local e recuperada em tempo de execução.
- O código deve ser legível o suficiente para copiar manualmente e reproduzir os resultados.
Qualquer formato de imagem é aplicável.
Bônus
- -10% da sua pontuação, se você permitir mais de um formato de saída.
- -15% se o seu código também for um quine 'verdadeiro'. isto é, ele não lê o código fonte, mas o código fonte está incorporado (veja aqui um exemplo)
- -30% se o seu código for estritamente correto - ou seja, a imagem do código está incorporada no programa (soluções Piet, estou olhando para você).
code-golf
quine
graphical-output
image-processing
Pureferret
fonte
fonte
Respostas:
Concha
Por "Imprimir uma imagem do código-fonte", presumo que seria realmente aceitável imprimir uma imagem em papel.
fonte
Piet, 24399.76
Isso não foi feito por mim.
fonte
PHP - 487 × 0,9 × 0,85 = 372,555 (2000 × 99px)
Se os avisos forem bons: PHP - 479 × 0,9 × 0,85 = 366,435
Você fornece a função de saída a ser usada como o primeiro argumento da linha de comandos:
Solução com avisos:
fonte
Espaço em branco, 125
Produz um arquivo de imagem no formato pbm .
Se você estiver testando esse código, copie-o clicando em "Editar" e copiando tudo entre as
<pre>
tags.Saída:
fonte
Mathematica,
3731 caracteresInspirado por uma resposta em mathematica.stackexchange.com .
fonte
Export["/tmp/out.png",%]
depois de executar este comando)#n
significa on
argumento de uma função pura (criada no&
momento). A expressão inteira se expande paraRasterize[Defer[#0[Defer,Rasterize]]]
, onde#0
é chamada recursiva da função pura original. De certa forma, isso não é uma solução estrita, mas não precisa de nenhum front-end para funcionar, e é uma solução agradável para a IMO.AppleScript,
6837Tudo bem, se você pode chamar o ImageMagick no zsh, isso também é válido. Ainda estou tentando criar algo mais elegante e sofisticado para minha própria satisfação, mas, por pura golfe, aqui estamos:
Nova versão
Versão antiga
Eu imagino que isso ainda será derrotado, mas o velho AppleScript verboso faz uma imitação admirável de sucessão para este.
fonte
Mathematica, 83
fonte
math
ouMathKernel
), mesmo com<<JavaGraphics`
importados.Sh, X e ImageMagick 18.9:
Isso deve funcionar em qualquer shell que tenha o ImageMagick.
Para imprimir apenas o código anexado,
clear &&
sai em 26.1Saída de amostra:
fonte
HTML5 / Javascript: 615
Demonstração: http://jsfiddle.net/E2738/2/
Pode-se clicar com o botão direito na imagem e salvá-la como PNG
fonte
<//script>
+wrapText+"<//script>";
para+wrapText+"<\/script>";
Java, 570 - 10% - 15% = 427,5
( "caminhoficheiro" incluído), 554-10% - 15% = 415,5 ( "caminhoficheiro" não incluído)
Graças a Andreas para a remoção
BufferedImage
dejava.awt.image.BufferedImage
Saída:
Para visualizar corretamente, consulte este link: http://i.stack.imgur.com/RRSDw.png
Isso funciona exatamente como um quine normal, exceto que gera uma imagem. O formato atual é
png
, mas o formato pode ser facilmente alterado, substituindo todas as instâncias dopng
programa pelo formato que você desejar.Ao contrário de algumas respostas aqui, este é um verdadeiro quine; nenhuma leitura do arquivo do programa.
fonte
Javascript + JQuery
153148Regular
Golfe
fonte
$
? você está usando jQuery também?stdio.h
xD. Escrever o programa sem o jQuery é fácil. Basta substituir$('<canvas/>')[0]
pordocument.createElement('canvas')
e$('body').append
comdocument.write
. O jQuery me salvou em bytes.zsh, 57 × 0,9 = 51,3
Passe o nome do arquivo de saída como argumento.
Produz:
fonte
C99 (usando SDL e SDL_ttf),
414354346 - 15% = 294,1Isso é muito feio sem mais quebras de linha, mas infelizmente elas precisam estar ausentes. A função de renderização de texto não agrega caracteres de controle, portanto, qualquer quebra de linha no código deve ser renderizada manualmente na saída.
Aqui está o mesmo código, mas com algumas quebras de linha extras para legibilidade:
Infelizmente, isso também não adiciona quebras de linha à saída gráfica:
A saída ainda é legível, embora com saída de 9 pontos e a cor vermelha da fonte, seja um pouco estridente. Você pode melhorá-lo à custa de um personagem substituindo o
9
por12
. (Observe que a dimensão da imagem resultante é codificada para 2048x80. Para acomodar as diferenças em várias fontes, um pouco de excesso foi adicionado à margem direita e à esquerda, o suficiente para que uma fonte de tamanho 12 ainda caiba confortavelmente Se você deseja aumentar ainda mais, as dimensões provavelmente precisarão ser alteradas também.)O comando para criar o programa é:
O programa assume que existe um arquivo de fonte chamado
q.ttf
no diretório atual quando executado. Eu cuidei disso de antemão executando o seguinte comando (que deve funcionar nos mais modernos Linuxes):Lembre-se de importar sua própria fonte TrueType favorita.
Após a execução do programa, a saída da imagem será criada no diretório atual, em um arquivo chamado
q.bmp
. Infelizmente, os arquivos de bitmap do Windows são o único formato de saída que este programa fornece. Adicionar mais formatos de saída exigiria vinculação em mais bibliotecas.Observe que este programa tira proveito da sintaxe do C99 para a introdução de valores literais não simples, reduzindo significativamente o número de variáveis que precisam ser definidas. Isso é algo que mais jogadores C devem aproveitar.
fonte
C # - 498 - 15% = 423,3
Provavelmente isso pode ser jogado mais. Eu nunca fiz quines ou esse tipo de gráfico em C # antes:
Saída:
Adicionar um suporte de formato diferente seria fácil. Não tenho certeza se vale a pena, no entanto.
fonte
Ruby, 104 caracteres
Exemplo de saída, por solicitação: i.imgur.com/jMC594C.png
fonte
Python:
255238 -10% -15% =195.075182.07Uso:
Este é um verdadeiro quine que desenha a saída para o arquivo especificado na linha de comando. O formato do arquivo é definido simplesmente alterando a extensão do nome do arquivo (por exemplo,
quine.jpg
para JPEG equine.png
PNG).Exemplo de saída (imagem de 2000 x 20):
fonte
2e3
vez de2000
.2e3
é umfloat
eImage.new
exigeint
s.