Cel:
Guru powiedział kiedyś, że idealne selfie z kodem najlepiej strzelać po przekątnej z lewego górnego rogu. Autoportret kodowy jest prawie jak Quine - ale obrócony o 45 stopni w prawo. Twoim zadaniem jest kodowanie programu, który generuje selfie kodu.
Zasady:
- Możesz użyć dowolnego języka programowania.
- Twoje programy nie powinny pobierać żadnych danych wejściowych z pliku, nazwy pliku, sieci ani niczego innego.
Obowiązkowe kryteria:
Autoportrety dotyczą motywu i tła, więc puste miejsca (i inne niewidoczne treści, takie jak linie i tym podobne) nie liczą się jako część liczby znaków. Wszystkie widoczne znaki są ograniczone do wyświetlania w prawidłowej pozycji obróconej o 45 stopni, podczas gdy wszystkie niewidoczne znaki nie są ograniczone do prawidłowej pozycji obróconej o 45 stopni. Podobnie jak paleta kolorów na normalnym selfie, obowiązkowe dla selfie kodu jest to, że zawiera co najmniej 16 z tych znaków: {a-zA-Z0-9}
Przykład:
Jeśli ten przykład jest prawidłowy kod źródłowy:
Output abcd
Output efgh
Output ijkl
Output mnop
Przykładowy kod powinien wypisać to:
O
O u
O u t
O u t p
u t p u
t p u t
p u t
u t a
t e b
i f c
m j g d
n k h
o l
p
To jest kod-golf, wygrywa najkrótszy kod źródłowy w bajtach!
Odpowiedzi:
JavaScript ( ES6 ), 72 bajty
16 unikalnych palet alfanumerycznych:
fjalert0plcgmixn
m
ii
flagi są dodawane do wyrażenia regularnego, aby spełnić minimalne wymagania dotyczące palety.źródło
CJam,
30 2825 bajtówJest to dość długie ze względu na 16 znaków z
A-Za-z0-9
limitu.Jest to nieco nietrywialna odmiana standardowej quine w CJam. Wkrótce doda wyjaśnienia.
AKTUALIZACJA - 2 bajty zapisane dzięki Martinowi, 3 bajty zapisane dzięki Dennisowi
Wypróbuj online tutaj
źródło
Java, 312
W rzeczywistości jest 326 bajtów, ale jeśli dobrze rozumiem reguły, nie muszę liczyć 14 spacji.
Program jest w zasadzie standardowym quine Java i dużą ilością białych znaków.
źródło
Python 3, 139 znaków - 10 spacji = 129 znaków
Ponieważ mój kod składał się z jednej linii, wystarczyło wydrukować program po przekątnej. Mój ciąg ma dziwną nazwę „sjxd”, dzięki czemu mój kod może mieć 16 unikalnych znaków alfanumerycznych.
źródło
CSS, 69 bajtów
Umieść pustą stronę HTML, aby uniknąć konfliktu z innymi tagami.
Paleta:
stylebfortanm45dgiplck
(22 znaki)źródło
MATLAB, 40 bajtów
Trochę trudne z całą tą rekurencją - jak wydrukować własny kod źródłowy podczas dodawania kodu do ciągu, który ma zostać wydrukowany, zwiększa rozmiar samego kodu źródłowego. Niemniej jednak, zrobią to:
123456;
Bit jest tam do spełnienia wymaganych 16 unikalnych postaci. Używane są następujące:Powyższy kod z jakiegoś powodu nie działa na Octave, ale działa w MATLAB. Poniżej znajduje się wynik:
Teraz, jeśli nie przeszkadza ci to,
ans=
że MATLAB lubi umieszczać, następujące działania będą działać dla 32 bajtów :źródło