Code golf: Wydrukuj obraz kodu źródłowego.
Wymagania
- Musi wyświetlać obraz samego kodu źródłowego, a nie wersję przechowywaną gdzie indziej i pobieraną w czasie wykonywania.
- Kod musi być wystarczająco czytelny, aby można go było skopiować ręcznie i odtworzyć wyniki.
Obowiązuje dowolny format obrazu.
Bonusy
- -10% twojego wyniku, jeśli zezwolisz na więcej niż jeden format wyjściowy.
- -15%, jeśli twój kod jest również „prawdziwą” quine. tzn. nie czyta kodu źródłowego, ale kod źródłowy jest osadzony (patrz tutaj przykład)
- -30%, jeśli twój kod jest ścisłym quine - tj. Obraz kodu jest osadzony w programie (rozwiązania Piet, patrzę na ciebie.)
code-golf
quine
graphical-output
image-processing
Pureferret
źródło
źródło
Odpowiedzi:
muszla
Przez „Wydrukuj obraz kodu źródłowego” zakładam, że rzeczywiście wydrukowanie obrazu na papierze byłoby dopuszczalne.
źródło
Piet, 24399.76
To nie zostało zrobione przeze mnie.
źródło
PHP - 487 × 0,9 × 0,85 = 372,555 (2000 × 99px)
Jeśli ostrzeżenia są poprawne: PHP - 479 × 0,9 × 0,85 = 366,435
Podajesz funkcję wyjściową, która ma być używana jako pierwszy argument wiersza poleceń:
Rozwiązanie z ostrzeżeniami:
źródło
Biała spacja, 125
Wysyła plik obrazu w formacie PBM .
Jeśli testujesz ten kod, skopiuj go, klikając „Edytuj” i kopiując wszystko między
<pre>
tagami.Wydajność:
źródło
Mathematica,
3731 znakówZainspirowany odpowiedzią na mathematica.stackexchange.com .
źródło
Export["/tmp/out.png",%]
po uruchomieniu tego polecenia)#n
oznaczan
argument funkcji czystej (utworzonej w&
punkcie). Całe wyrażenie rozszerza się naRasterize[Defer[#0[Defer,Rasterize]]]
, gdzie#0
jest rekurencyjne wywołanie pierwotnej czystej funkcji. W pewnym sensie nie jest to ścisły quine, ale nie wymaga nakładki do działania, a IMO jest dobrym rozwiązaniem.AppleScript,
6837W porządku, jeśli możesz wywołać ImageMagick w Zsh, to również jest poprawne. Nadal hackuję coś bardziej eleganckiego i ducha quine dla mojej własnej satysfakcji, ale dla czystej golfisty, oto:
Nowa wersja
Stara wersja
Wyobrażam sobie, że nadal będzie to pobity, ale stary, pełen języka AppleScript robi godną podziwu imitację zwięzłości.
źródło
Mathematica, 83
źródło
math
lubMathKernel
), nawet w przypadku<<JavaGraphics`
importu.Sh, X i ImageMagick 18.9:
Powinno to działać w dowolnej powłoce, która ma ImageMagick.
Aby wydrukować tylko kod poprzedzający,
clear &&
pojawia się w 26.1Przykładowe dane wyjściowe:
źródło
HTML5 / JavaScript: 615
Demo: http://jsfiddle.net/E2738/2/
Możesz kliknąć obraz prawym przyciskiem myszy i zapisać go jako PNG
źródło
<//script>
+wrapText+"<//script>";
na+wrapText+"<\/script>";
Java, 570 - 10% - 15% = 427,5
(„ścieżka pliku” w zestawie), 554 - 10% - 15% = 415,5 („ścieżka pliku” nie jest wliczony)
Podziękowania dla Andreasa za usunięcie
BufferedImage
wjava.awt.image.BufferedImage
Wydajność:
Aby wyświetlić poprawnie, zobacz ten link: http://i.stack.imgur.com/RRSDw.png
Działa to tak jak zwykły quine, z tą różnicą, że wysyła obraz. Obecny format jest
png
, ale format można łatwo zmienić, zastępując wszystkie wystąpieniapng
programu dowolnym formatem.W przeciwieństwie do kilku odpowiedzi tutaj jest to prawdziwy quine; brak odczytu pliku programu.
źródło
JavaScript + JQuery
153148Regularny
Grał w golfa
źródło
$
? czy używasz również jQuery?stdio.h
xD. Pisanie programu bez jQuery jest jednak łatwe. Wystarczy wymienić$('<canvas/>')[0]
zdocument.createElement('canvas')
i$('body').append
zdocument.write
. jQuery zapisał mi bajty.zsh, 57 × 0,9 = 51,3
Przekaż wyjściową nazwę pliku jako argument.
Produkuje:
źródło
C99 (przy użyciu SDL i SDL_ttf),
414354346 - 15% = 294,1Jest to dość brzydkie bez kolejnych podziałów linii, ale niestety muszą być nieobecne. Funkcja renderowania tekstu w ogóle nie wykrywa znaków kontrolnych, więc wszelkie podziały wiersza w kodzie muszą być renderowane ręcznie na wyjściu.
Oto ten sam kod, ale z pewnymi dodatkowymi podziałami linii dla czytelności:
Niestety nie powoduje to również podziału linii na wynik graficzny:
Wyjście jest nadal czytelne, choć przy 9-punktowym wydruku i czerwonym kolorze czcionki jest nieco zwięzłe. Możesz go ulepszyć kosztem postaci, zastępując
9
ją12
. (Należy zauważyć, że wymiar wynikowego obrazu jest zakodowany na stałe do 2048 x 80. Aby uwzględnić różnice w różnych czcionkach, dodano odpowiedni nadmiar do prawego marginesu i na początku, na tyle, że czcionka o rozmiarze 12 powinna nadal wygodnie pasować Jeśli jednak chcesz go zwiększyć, wymiary prawdopodobnie będą również musiały zostać zmienione).Polecenie do zbudowania programu to:
Program zakłada, że
q.ttf
po uruchomieniu plik czcionki jest wywoływany w bieżącym katalogu. Zadbałem o to wcześniej, uruchamiając następującą komendę (która powinna działać na większości współczesnych Linuksów):(Zamiast tego możesz zaimportować swoją ulubioną czcionkę TrueType.)
Po uruchomieniu programu obraz wyjściowy zostanie utworzony w bieżącym katalogu, w pliku o nazwie
q.bmp
. Niestety pliki bitmapowe systemu Windows są jedynym formatem wyjściowym udostępnianym przez ten program. Dodanie większej liczby formatów wyjściowych wymagałoby łączenia w większej liczbie bibliotek.Zauważ, że ten program wykorzystuje składnię C99 do wprowadzania nieprostych wartości literalnych, co znacznie zmniejsza liczbę zmiennych, które należy zdefiniować. Jest to coś, z czego powinno skorzystać więcej golfistów C.
źródło
C # - 498 - 15% = 423,3
To może być bardziej golfa. Nigdy wcześniej nie robiłem quinesów ani tego rodzaju grafiki w C #:
Wydajność:
Dodanie obsługi innego formatu byłoby łatwe. Nie jestem jednak pewien, czy warto.
źródło
Ruby, 104 znaki
Przykładowe dane wyjściowe na żądanie: i.imgur.com/jMC594C.png
źródło
Python:
255238 -10% -15% =195,075182,07Stosowanie:
To jest prawdziwa quine, która zwraca dane wyjściowe do pliku określonego w wierszu poleceń. Format pliku ustawia się po prostu przez zmianę rozszerzenia nazwy pliku (np.
quine.jpg
Dla JPEG iquine.png
PNG).Przykładowe dane wyjściowe (obraz 2000 x 20):
źródło
2e3
zamiast2000
.2e3
jestfloat
iImage.new
wymagaint
s.