Wybierz swoje ulubione 6-literowe wspólne angielskie słowo, które nie ma powtarzających się liter , takie jak wombat
.
Napisz program w siatce znaków N × N bez komentarzy, tak aby każdy wiersz i kolumna zawierał wszystkie litery twojego słowa pisane małymi literami w dowolnej kolejności. Program musi wypisać definicję słowa w postaci 36 lub więcej znaków .
Zasady
- Wyjście na standardowe wyjście. Brak danych wejściowych.
- Twoje słowo musi znajdować się na Dictionary.com i zawierać tylko az. Bez właściwych rzeczowników, bez skrótów, bez skrótów, bez skurczów.
- Twój program i dane wyjściowe mogą zawierać tylko drukowalne znaki ASCII (kody szesnastkowe od 20 do 7E). (To nie liczy koniecznych nowych linii w siatce programu).
- Komentarze to wszystko, co kompilator lub tłumacz tradycyjnie ignoruje. Możesz użyć kodu, który nie przyczynia się do wyjścia lub nie zostaje oficjalnie wykonany.
- Definicja wyjściowa powinna być gramatyczna i dokładna, ale z pewnością może być zabawna lub sprytna.
- Każdy wiersz lub kolumna, która zawiera przynajmniej 6 unikalnych liter Twojego słowa, jest ważna. Przekątne nie mają znaczenia.
Punktacja
To jest kod golfowy, ale ponieważ wszystkie zgłoszenia muszą mieć ten sam kwadratowy format, możesz po prostu określić swój wynik za pomocą N. Najniższe N wygrywa, a oczywiście N poniżej 6 jest niemożliwe. W przypadku remisu wygrywa najwyższa głosowana odpowiedź.
Przykład
Jeśli Twoim słowem było wombat
Twoje, program może wyglądać tak (N = 7):
wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat
Zauważ, że każdy wiersz i każda kolumna ma znaki w
o
m
b
a
t
.
Wynik może być: (40 znaków)
Cute short-legged Australian marsupials.
źródło
golfed
” i definicję"a description of this program's code"
(dla każdego, kto może wymyślić, jak to zrobić!).Odpowiedzi:
Perl - winogrona - 11
edytuj: Przypadkowo utworzyłem 12 linii ...
Wynik:
Aktualizacja!
Usunąłem linię, aby sprowadzić ją do 11, ale musiałem zmienić zdanie. Mam nadzieję, że tym razem nie popełniłem żadnych błędów!
Wynik:
Dane wyjściowe to 37 znaków.
źródło
JavaScript - akcja - 15x15
„Zdecydowanie nie najkrótszy, ale PEW PEW PEW.” - James Bond
Link do
wyjścia jsfiddle (37 znaków):
źródło
Befunge 93, n = 13
Działa to poprzez przekierowanie łańcucha za pomocą
"v
i>"
. Działa to tylko wtedy, gdy długość boku i długość słowa są koprime, a długość boku jest większa niż 11. W tej chwili działa dla „słowa”vwombat
, a zatem dlawombat
.Wyjścia
Cute short-legged Australian marsupial
źródło
C (słowo: „finder”, N = 16)
Kompilowany z GCC, z opcjami
-Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr=""
.Wyprowadza
it's defined as a thing that can find other things
(50 znaków). Wierzę, że przestrzega wszystkich zasad, ale możesz mi powiedzieć, czy jest jakiś błąd!źródło
"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
GolfScript, N = 12
Przykład wombata zakodowany w GolfScript. Dane wyjściowe to
jak podano w pytaniu. Interesujące jest to, że możesz użyć większości słów i odpowiedzi i po prostu wstawić odpowiednie litery do rozwiązania, o ile nie stworzysz wbudowanego GolfScript, który jest bardzo rzadki
p
, con
jest oczywiste. Wszystkie inne kombinacje prowadzą do prawidłowych zmiennych GolfScript, które domyślnie nie są ops.źródło
Befunge-98 (n = 12)
Wybrałem Kelvin, ponieważ miał w sobie av. Wyjścia
kelvin is like celsius but it's lowe
źródło
Si temp
brakuje 29 znaków z 36.;)k
i kolumny 9e
.Python, n = 15
Słowo to „kajaki”
Wynik:
źródło
canoes
. Naprawiony.Perl - powtórz - 11
Wynik:
Patrząc wstecz, może powinienem był zrobić z tego pętlę.
źródło
e
w linii, więc pomyślałem, że równie dobrze mogę to opublikować.Rubin ,
haters
N = 10Po wielogodzinnych próbach ręcznego napisania programu generatora i poprawieniu parametrów w końcu znalazłem rozwiązanie dla N = 10!
Wysyła
Haters nurse hate in hardest hearts.
dokładnie 36 znaków. Wypróbuj online!Wybrałem Ruby, ponieważ jego zmienne nie potrzebują
$
(Perl), a ciągi cudzysłowu mogą zawierać znaki nowej linii (Python). Fakt, żetr
metoda wykorzystuje dwie litery mojego słowa, był nieoczekiwaną korzyścią. Trzon programu jest prosty:Ułożenie wszystkich liter w rzędzie oczywiście nie było łatwe. Przejrzałem kilka wariantów tej samej struktury i nauczyłem się kilku rzeczy o Ruby w tym procesie (
tr
nie potrzebuje nawiasów i?\s
jest innym sposobem na uzyskanie spacji). Było wiele ślepych zaułków i kilka fałszywych trafień. A potem ... sukces!Oto sedno mojego zhakowanego programu generatora, jeśli ktoś jest zainteresowany.
źródło
Skrypt golfowy (n = 10)
Mój pierwszy skrypt golfowy! Drukuje
kelvin is like celsius but it's lowe
źródło
GolfScript, 13x13
Nie najmniejszy ...
... ale ...
(Podział wierszy w słowach jest celowy, ponieważ inaczej miałbym wiodące lub końcowe białe znaki, które wyglądałyby mniej kwadratowo.)
źródło
Python, N = 11
Słowo to „rodzic”. Ten kod nie jest ładny, ale działa.
Wynik:
parent: a person that made a person
Edycja: Jakoś przegapiłem fakt, że kolumny muszą również zawierać słowo. Patrząc wstecz, język zawierający znaki końcowe jako część języka nie był dobrze dopasowany do tej układanki.
źródło
parent
. Na przykład pierwszy nie maa
.p
brakuje w 6 i 8a
.: 4, 6, 7, 11r
.: 4, 10, 11e
.: 4, 5, 8, 9, 11n
.: 3, 5, 7, 11t
.: 1, 3, 6, 8.Pip , n = 14 (niekonkurencyjny)
Język jest nowszy niż pytanie. Słowo jest
quines
. 1Wyprowadza następującą (co prawda niekompletną) definicję:
Wypróbuj online!
Znacząca część kodu działa w ten sposób:
Reszta kodu to dowolne przypadki braku operacji. Główną trudnością w sekcjach „wypełniających” było nigdy nie oceniać
q
, ponieważ poprosi użytkownika o wprowadzenie linii wejściowej (nie jest to problem w TIO, ale chciałem poprawić go we wszystkich środowiskach). Kiedyś Zwarcie operatorów logicznych|
i&
, i trójskładnikowych?
, aby zapobiecq
„s oceny.1 Dictionary.com ma wpis dla quine , u dołu sekcja dotycząca znaczenia programowania. Ponieważ „quine” jest rzeczownikiem policzalnym, argumentowałbym, że „quines” jest poprawnym słowem.
źródło
JavaScript, N = 8
Moje słowo to alerty .
Mój kod wysyła definicję funkcji alertu javascript wiele razy. Definicja alertu w języku JavaScript to „funkcja alert () {[kod natywny]}”.
Tylko pierwsze trzy wiersze kodu faktycznie wpływają na wynik. Ostatnie 5 wierszy to błędy składniowe, ale pierwotne reguły stanowiły, że nie cały kod musi zostać wykonany, dopóki dane wyjściowe są poprawne.
Oto link do skrzypiec: http://jsfiddle.net/tze76pum/
źródło