Код гольф: распечатать изображение исходного кода.
Требования
- Должен выводить изображение самого исходного кода, а не версии, хранящейся в другом месте и извлекаемой во время выполнения.
- Код должен быть достаточно разборчивым, чтобы его можно было скопировать вручную и воспроизвести результаты.
Любой формат изображения применим.
Бонусы
- -10% от вашей оценки, если вы разрешите более одного выходного формата.
- -15%, если ваш код также является истинным квинем. т.е. не читает ее исходный код , но исходный код встраивается (см здесь для примера)
- -30%, если ваш код строгий квин - то есть изображение кода встроено в программу (Piet solutions, я смотрю на вас).
code-golf
quine
graphical-output
image-processing
Pureferret
источник
источник
Ответы:
ракушка
Под «Печать изображения исходного кода» я предполагаю, что на самом деле печать изображения на бумаге будет приемлемой.
источник
Пит, 24399,76
Это не было сделано мной.
источник
PHP - 487 × 0,9 × 0,85 = 372,555 (2000 × 99 пикселей)
Если предупреждения в порядке: PHP - 479 × 0,9 × 0,85 = 366,435
Вы предоставляете функцию вывода для использования в качестве первого аргумента командной строки:
Решение с предупреждениями:
источник
Пробел, 125
Выводит файл изображения в формате pbm .
Если вы тестируете этот код, скопируйте его, нажав «Изменить», и скопируйте все между
<pre>
тегами.Выход:
источник
Mathematica,
3731 символВдохновленный ответом в mathematica.stackexchange.com .
источник
Export["/tmp/out.png",%]
после запуска этой команды)#n
означаетn
аргумент чистой функции (созданной в&
точке). Все выражение расширяется доRasterize[Defer[#0[Defer,Rasterize]]]
, где#0
происходит рекурсивный вызов исходной чистой функции. В некотором смысле, это не строгий пример, но для его работы не требуется внешний интерфейс, и IMO - хорошее решение.AppleScript,
6837Хорошо, если вы можете вызвать ImageMagick в Zsh, то это тоже верно. Я до сих пор хакуюсь над чем-то более элегантным и необыкновенным для собственного удовольствия, но ради чистой игры в гольф, вот мы:
Новая версия
Старая версия
Я предполагаю, что это все еще будет побеждено, но многословный старый AppleScript делает замечательную имитацию краткости для этого.
источник
Математика, 83
источник
math
илиMathKernel
), даже с<<JavaGraphics`
импортированным.Sh, X & ImageMagick 18.9:
Это должно работать в любой оболочке, которая имеет ImageMagick.
Чтобы напечатать только код, добавьте
clear &&
это в 26.1Образец вывода:
источник
HTML5 / Javascript: 615
Демо: http://jsfiddle.net/E2738/2/
Можно щелкнуть правой кнопкой мыши по изображению и сохранить его в формате PNG.
источник
<//script>
+wrapText+"<//script>";
на+wrapText+"<\/script>";
Ява, 570 - 10% - 15% = 427,5
("filepath" включен), 554 - 10% - 15% = 415,5 ("filepath" не включен)
Спасибо Андреасу за удаление
BufferedImage
вjava.awt.image.BufferedImage
Выход:
Для правильного просмотра перейдите по этой ссылке: http://i.stack.imgur.com/RRSDw.png
Это работает так же, как обычный quine, за исключением того, что выводит изображение. Текущий формат есть
png
, но формат можно легко изменить, заменив все экземплярыpng
в программе любым форматом, который вы хотите.В отличие от нескольких ответов здесь, это настоящая квинна; нет чтения файла программы.
источник
Javascript + JQuery
153148регулярное
Golfed
источник
$
? Вы используете JQuery, а?stdio.h
xD. Написание программы без JQuery легко, хотя. Просто замените$('<canvas/>')[0]
наdocument.createElement('canvas')
и$('body').append
сdocument.write
. jQuery спас меня байты.zsh, 57 × 0,9 = 51,3
Передайте ему имя выходного файла в качестве аргумента.
Производит:
источник
C99 (с использованием SDL и SDL_ttf),
414354346 - 15% = 294,1Это довольно безобразно без дополнительных разрывов строк, но, к сожалению, они должны отсутствовать. Функция рендеринга текста вообще не обрабатывает управляющие символы, поэтому любые разрывы строк в коде должны выводиться вручную при выводе.
Вот тот же код, но с некоторыми дополнительными переносами строк, добавленными для удобочитаемости:
К сожалению, это также не добавляет разрывы строк к графическому выводу:
Вывод по-прежнему четкий, хотя с 9-точечным выводом и красным цветом шрифта, он немного капризный. Вы можете улучшить его за счет характера путем замены
9
с12
. (Обратите внимание, что размер получающегося изображения жестко закодирован до 2048x80. Чтобы учесть различия в различных шрифтах, к правому краю и начальному значению было добавлено немало избыточного, достаточного для того, чтобы шрифт размера 12 по-прежнему удобно помещался Однако, если вы хотите увеличить его, размеры, вероятно, также должны быть изменены.)Команда для сборки программы:
Программа предполагает, что
q.ttf
при запуске существует файл шрифта, который вызывается в текущем каталоге. Я позаботился об этом заранее, выполнив следующую команду (которая должна работать на большинстве современных Linux):(Не стесняйтесь импортировать свой собственный любимый шрифт TrueType.)
После запуска программы вывод изображения будет создан в текущем каталоге в файле с именем
q.bmp
. К сожалению, растровые файлы Windows являются единственным выходным форматом, который предоставляет эта программа. Добавление большего количества форматов вывода потребует ссылки в большем количестве библиотек.Обратите внимание, что в этой программе используется синтаксис C99 для введения непростых литеральных значений, что значительно сокращает количество переменных, которые необходимо определить. Это то, что больше игроков в гольф C должны использовать в своих интересах.
источник
C # - 498 - 15% = 423,3
Это, вероятно, может быть в гольф больше. Я никогда не делал квины или такую графику в C #:
Выход:
Добавление поддержки другого формата было бы легко. Не уверен, что оно того стоит.
источник
Рубин, 104 символа
Пример вывода для каждого запроса: i.imgur.com/jMC594C.png
источник
Питон:
255238 -10% -15% =195,075182,07Использование:
Это настоящая сущность, которая выводит выходные данные в файл, указанный в командной строке. Формат файла устанавливается просто путем изменения расширения имени файла (например,
quine.jpg
для JPEG иquine.png
для PNG).Пример вывода (изображение 2000x20):
источник
2e3
вместо2000
.2e3
этоfloat
иImage.new
требуетint
с.