Buat kotak kode dengan kata favorit Anda

47

Pilih kata Inggris umum 6 huruf favorit Anda yang tidak memiliki huruf yang berulang , seperti wombat.

Tulis program dalam kisi karakter N × N tanpa komentar sedemikian rupa sehingga setiap baris dan kolom berisi semua huruf dari kata Anda dalam huruf kecil dalam urutan apa pun. Program harus menghasilkan definisi kata Anda dalam 36 karakter atau lebih .

Aturan

  • Output ke stdout. Tidak ada input.
  • Kata Anda harus di Dictionary.com dan hanya mengandung az. Tidak ada kata benda yang tepat, tidak ada akronim, tidak ada singkatan, tidak ada kontraksi.
  • Program dan hasil Anda hanya boleh berisi karakter ASCII yang dapat dicetak (kode hex 20 hingga 7E). (Ini tidak termasuk baris baru yang diperlukan dalam kisi program.)
  • Komentar adalah segala sesuatu yang biasanya diabaikan oleh kompiler atau juru bahasa. Anda dapat menggunakan kode yang tidak berkontribusi pada output atau tidak secara resmi dieksekusi.
  • Definisi output harus gramatikal dan akurat, tetapi tentu saja mungkin lucu atau pintar.
  • Setiap baris atau kolom yang setidaknya berisi 6 huruf unik kata Anda dalam huruf kecil adalah valid. Diagonal tidak penting.

Mencetak gol

Ini adalah kode golf tetapi karena semua kiriman harus dalam format kuadrat yang sama Anda hanya dapat menentukan skor Anda dengan N. N menang terendah, dan tentu saja N di bawah 6 tidak mungkin. Dalam hal ikatan, jawaban tertinggi yang terpilih menang.

Contoh

Jika kata Anda adalah wombatprogram Anda mungkin terlihat seperti ini (N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

Perhatikan bahwa setiap baris dan setiap kolom memiliki karakter w o m b a t.

Outputnya mungkin: (40 karakter)

Cute short-legged Australian marsupials.
Hobi Calvin
sumber
OK, Anda harus membuat kisi-kisi menggunakan kata 6 huruf, tetapi kemudian saya tidak mengerti hasilnya: "Lucu marsupial Australia berkaki pendek.".
CousinCocaine
@CousinCocaine Itu deskripsi wombat. Anda harus menghasilkan deskripsi tata bahasa dan akurat dari kata yang Anda pilih.
ProgramFOX
Karena ini adalah kode golf, siapa yang memutuskan apa yang benar? "Lucu marsupial Australia berkaki pendek" atau "marsupial berkaki pendek"?
SepupuCocaine
5
Ide: Buatlah kata be " golfed", dan definisinya "a description of this program's code"(untuk siapa saja yang dapat mengetahui bagaimana melakukan ini!).
Gagang Pintu
6
sial, saya tidak punya kata favorit 6 karakter
user902383

Jawaban:

18

Perl - anggur - 11

sunting: Saya tidak sengaja membuat 12 baris ini ...

$epagsr=$";
$,=$epagsr;
/gaerp/;say
grep!/a*s/,
qw(A searpg
purple sgar
rpssg pear?
No, a sgerp
s great pse
as grape; s
eat prgpsga
up! sgarse)

Keluaran:

A purple pear? No, a great grape; eat up!

Memperbarui!

Saya menghilangkan satu baris untuk menurunkannya menjadi 11 tetapi saya harus mengubah kalimatnya. Semoga saya tidak membuat kesalahan saat ini!

$gpasre=$";
$,=$gpasre;
/paerg/;say
grep!/a*s/,
qw(A sgrpea
purple sarg
ressp game?
No, a rgspe
s great gsp
as grape; s
eat),$spegr

Keluaran:

A purple game? No, a great grape; eat

Outputnya adalah 37 karakter.

hmatt1
sumber
Saya suka yang ini terutama karena puisi keluaran kecil. Malu itu bukan haiku :)
Matt Fletcher
1
Ini 12x11 ...
Skisma
@schism wow ... Tembak! Saya akan memperbaikinya. Terima kasih!
hmatt1
Akan menerima ini, tapi masih 12 tinggi.
Calvin Hobbies
47

Javascript - aksi - 15x15

"Jelas bukan yang terpendek, tapi PEW PEW PEW." - James Bond

ction="action "
ction+="means "
actionac="PEW "
ctionact="PEW "
tionacti="PEW "
ionactio="PEW "
onaction="PEW "
nactiona="PEW "
ction+=actionac
ction+=ctionact
ction+=tionacti
ction+=ionactio
ction+=onaction
ction+=nactiona
alert(""+ction)

Tautan ke jsfiddle

Output (37 karakter):

action means PEW PEW PEW PEW PEW PEW 
izlin
sumber
Baris pertama Anda harus berisi huruf kecil a.
Hobi Calvin
@ CalvinHobbies Kamu benar. Aku telah memperbaikinya.
izlin
35

Menuju 93, n = 13

Ini berfungsi dengan mengarahkan ulang string dengan "vdan >". Ini hanya bekerja ketika panjang sisi dan panjang kata adalah koprime dan ketika panjang sisi lebih besar dari 11. Saat ini, ia bekerja untuk "kata" vwombat, dan karenanya untuk wombat.

"laip"vwombat
wombat>"usr"v
"am "vwombat>
ombat>"nai"vw
lar"vwombat>"
mbat>"tsu"vwo
 d"vwombat>"A
bat>"egg"vwom
-"vwombat>"el
at>"tro"vwomb
"vwombat>"hs 
t>"tuC"vwomba
vwombat>:#,_@

Keluaran Cute short-legged Australian marsupial

Zaq
sumber
25

C (kata: "finder", N = 16)

main() finder{ f
printf(finder  i
"it's defined "r
"as a t"finder d
"hing t"finder e
"hat ca"finder r
"n find other t"
"hings" finder);
finder finder f\
inder finder fi\
nder finder fin\
der finder find\
er finder finde\
r finder finder
 finder finder n
return 0;finder}

Dikompilasi dengan GCC, dengan opsi-opsi -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr="".

Ini menghasilkan it's defined as a thing that can find other things(50 karakter). Saya percaya itu mengikuti semua aturan, tetapi jangan ragu untuk memberi tahu saya jika ada kesalahan!

maxdefolsch
sumber
3
Terlihat benar, meskipun saya tidak tergila-gila dengan semua opsi kompiler.
Hobi Calvin
1
Tentu saja, saya sedikit membengkokkan aturan di sini. Pada awalnya saya mencari banyak definisi, itu sebabnya saya memilih kata "finder" (karena mengandung hampir huruf yang sama dengan "define").
maxdefolsch
9
itu bukan ide yang baik untuk menggunakan macro. jika diizinkan, Anda dapat mengatakan n = 6 dan kompilasi dengan ini:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe
Itu benar, aku bahkan tidak memikirkan itu.
maxdefolsch
21

GolfScript, N = 12

wombat"Cute"
ombat" sho"w
mbat"rt-l"wo
bat"egge"wom
at"d Au"womb
twomb"stra"a
wom"lian "bt
ttwomb"mar"t
"sup"wbwomat
"ia"womabbtt
"ls"bawomtbt
aaawomobt"."

Contoh wombat disandikan dalam GolfScript. Output adalah

Cute short-legged Australian marsupials.

seperti yang diberikan dalam pertanyaan. Bagian yang menarik adalah bahwa Anda dapat menggunakan sebagian besar kata dan jawaban dan hanya memasukkan huruf yang sesuai ke dalam solusi selama Anda tidak menghasilkan built-in GolfScript yang sangat jarang p, seperti nyang sudah jelas. Semua kombinasi lain mengarah ke variabel GolfScript yang valid yang tanpa-ops secara default.

Howard
sumber
Jadi saya kira orang bisa memotong ini secara signifikan dengan frasa pintar yang menggunakan banyak huruf dari kata tersebut.
Martin Ender
@ MartinBüttner saya mencoba, tetapi 36 karakter membuatnya cukup sulit.
Howard
Saya menggunakan pendekatan Anda untuk pengiriman "persegi" (lihat di bawah). Ini sebenarnya satu karakter yang lebih besar dari karakter Anda, tetapi dengan beberapa perubahan yang cerdas di sekitar itu mungkin untuk menekannya.
Martin Ender
18

Befunge-98 (n = 12)

Saya memilih kelvin karena ada av di dalamnya. Keluarankelvin is like celsius but it's lowe

"ewol "vnlik 
"t's"ke<ilnv 
kelniv"t i"< 
elnik>"ub "v 
nkv"elsius"< 
ln>"c eki"vl 
v0ke"is l"<n 
>" nivlek" v 
ielnv,k4'k#< 
 vivlevlnek< 
 ilkkninevei 
  elnkn vnle
waylon531
sumber
Sayangnya, Si temp29 karakter lebih pendek dari 36.;)
Martin Ender
Tampaknya setiap kali saya memposting di Befunge-93, seseorang menindaklanjuti dengan solusi Befunge-98 yang serupa ...
Zaq
@ Zaq jangan khawatir, -93 lebih menyenangkan.
seequ
Jalur 2 tidak memiliki saya.
Skisma
Juga, baris 4 tidak ada kdan kolom 9 tidak ada e.
Skisma
11

Python, n = 15

Kata itu adalah "kano"

def canoe(s='S\
ecret weap',sno
='ce',a='ons o\
f the Can',oces
=1,oesn=1,c='a\
dian navy',cose
="""aoenscanaen
canceessanoeeca
anoasanooscanoe
noescccccaeescc
oescneocaeoesca
escaoescan"""):
 canoes=s + a+c
 print (canoes)
s=1;    canoe()

Keluaran:

Secret weapon of the Canadian navy
Gerrat
sumber
Ini adalah 16x15!
Skisma
Terima kasih ... pada beberapa titik saya salah hitung dan merasa perlu menambahkan satu baris dengan canoesdi sana. Tetap.
Gerrat
10

Perl - ulangi - 11

$repeat=qq(
repeat);say
"repeat\n"x
length'pear
repeatrepea
epeatrepeat
peatrepeatr
eatrepeatre
atrepeatrep
trepeatrepe
repeat....'

Keluaran:

repeat
repeat
repeat
repeat
...keeps going

Menengok ke belakang, mungkin seharusnya saya membuat lingkaran ini.

hmatt1
sumber
12
Pendek kata yang tidak memiliki persyaratan huruf berulang .
Howard
3
@Howard Setidaknya ada 2 e's per baris jadi saya pikir saya mungkin juga mempostingnya.
hmatt1
6

Ruby ,, hatersN = 10

Setelah berjam-jam mencoba dengan tangan, menulis program generator, dan mengutak-atik parameter, saya akhirnya menemukan solusi untuk N = 10!

aser=ts=?h
tah=re=?\s
sh='Haters
nurse hate
in hardest
hearts.'  
rtse=erha=
era=sh.tr'
',tah;aser
 puts erha

Output Haters nurse hate in hardest hearts., tepatnya 36 karakter. Cobalah online!

Saya memilih Ruby karena variabelnya tidak perlu $( Perl ), dan string dengan tanda kutip tunggal dapat berisi baris baru ( Python ). Fakta bahwa trmetode ini menggunakan dua huruf kata-kata saya adalah bonus yang tidak terduga. Inti dari program ini sangat mudah:

# Store the definition, with newlines
sh='Haters
nurse hate
in hardest
hearts.'
# Transliterate newline to space
erha=sh.tr('
',' ')
# Output
puts erha

Mendapatkan semua surat untuk berbaris, tentu saja, tidak mudah. Saya pergi melalui beberapa variasi pada struktur yang sama dan belajar beberapa hal tentang Ruby dalam proses ( trtidak perlu tanda kurung, dan ?\smerupakan cara lain untuk mendapatkan ruang). Ada banyak jalan buntu dan beberapa positif palsu. Dan kemudian ... sukses!

Inilah inti dari program generator yang diretas bersama, jika ada yang tertarik.

DLosc
sumber
5

Naskah Golf (n = 10)

Skrip golf pertama saya! Mencetakkelvin is like celsius but it's lowe

"kelvin is
like ce"vn
evn"lsiu"k
k"s "elvni
in"bu"kelv
"t "knviel
vl"it'"nke
nevkil"s l
o"ivnkel"w
e"lnevik
waylon531
sumber
Apa yang dimaksud dengan "lowe"?
aditsu
1
dictionary.com mengatakan bahwa ini bisa berarti low
waylon531
Itu hanya merujuk pada kata kerja, yang berarti: membakar; nyala / (seseorang) untuk merasakan emosi yang kuat; bersinar dengan kegembiraan. Saya tidak melihat cara kerjanya di sini.
aditsu
Lihatlah kutipan di kanan atas halaman
waylon531
1
Maaf, tapi "lowe" agak terlalu kabur. Saya akan menerima ini jika Anda bisa membuatnya "rendah" atau "lebih rendah".
Hobi Calvin
5

GolfScript, 13x13

Bukan yang terkecil ...

squae"A squar
"uarsquaresqu
uareq"e has f
"resuaresquar
resqa"our equ
"squresquares
quars"al side
"arequaresqua
areuq"s and r
"esqaresquare
esqur"ight an
"quaesquaresq
quar"gles..."

... tapi ...

A squar
e has f
our equ
al side
s and r
ight an
gles...

(Memiliki garis-istirahat dalam kata-kata adalah disengaja, karena kalau tidak saya akan memimpin atau mengikuti spasi yang akan terlihat kurang persegi.)

Martin Ender
sumber
4

Python, N = 11

Kata adalah "induk". Kode ini tidak cantik, tetapi berfungsi.

eprnt=" a "
at="person"
rnep="that"
nrpt="made"
ea= " prnt"
e="parent:"
pa =(eprnt+
at+" "+rnep
+ea[0]+nrpt
+ eprnt+at)
print(e+pa)

Keluaran: parent: a person that made a person

Sunting: Entah bagaimana saya melewatkan fakta bahwa kolom juga harus mengandung kata. Dalam retrospeksi, bahasa yang menyertakan karakter endline sebagai bagian dari bahasa itu tidak cocok untuk teka-teki ini.

Thomas
sumber
4
Bagus, tetapi tidak setiap kolom berisi kata parent. Yang pertama, misalnya, tidak memiliki a.
ProgramFOX
2
Masih banyak yang hilang. philang dalam 6 dan 8 a.: 4, 6, 7, 11 r.: 4, 10, 11 e.: 4, 5, 8, 9, 11 n.: 3, 5, 7, 11 t.: 1, 3, 6, 8.
Skisma
2

Pip , n = 14 (tidak bersaing)

Bahasa lebih baru dari pertanyaan. Kata itu quines. 1

n_n|quine say&
qu ines     qi
as  harle quin
se?(equins)ns.
 plums|quinces
|quicken bus++
iness|q++++i u
u:++ingl es?eq
ni*:u; s|qe:",
which "Rns|que
eRL:i|quotesne
PUsn    quiet!
u|qe."print".s
JW"quines"  :)

Menghasilkan definisi berikut (memang tidak lengkap):

quines print quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, yang mencetak quines, quines yang mencetak, quines yang mencetak, yang mencetak quines, yang mencetak quines

Cobalah online!

Bagian yang berarti dari kode tersebut adalah:

++i          Increment i (initially set to 0)
++++i        Increment i twice
u:++i        Increment i again and assign to u (i & u are now 4)
i*:u         Multiply i by u in-place (i is now 16)
e:",         Assign the string ",\nwhich " to e...
which "Rns   after replacing the newline with a space
eRL:i        Make a list of 16 copies of e and assign back to e
ePUs         Push a space to the front of list e
e."print".s  Concatenate "print" and a space to each element of e...
JW"quines"   and join on "quines", wrapping the result in "quines"

Sisa kode adalah arbitrase tanpa izin. Kesulitan utama di bagian "pengisi" adalah tidak pernah mengevaluasi q, karena akan meminta pengguna untuk jalur input (bukan masalah pada TIO, tapi saya ingin membuatnya benar di semua lingkungan). Saya menggunakan operator logika hubungan pendek |dan &, dan ternary ?, untuk mencegah qevaluasi.

1 Dictionary.com memiliki entri untuk quine , dengan bagian makna pemrograman di bagian bawah. Karena "quine" adalah kata benda yang dapat dihitung, saya berpendapat bahwa "quine" adalah kata yang valid.

DLosc
sumber
1

Javascript, N = 8

Kata saya adalah peringatan .

s= alert
alert(s+
s+alert)
aaltrsee
leraatts
ertsalar
rtsaaela
tsaesarl

Kode saya menampilkan definisi fungsi peringatan javascript beberapa kali. Definisi Javascript tentang waspada adalah "function alert () {[kode asli]}".

Hanya tiga baris kode pertama yang berkontribusi pada output. 5 baris terakhir adalah kesalahan sintaksis tetapi aturan asli menyatakan bahwa tidak semua kode harus dieksekusi selama outputnya benar.

Berikut ini tautan ke biola: http://jsfiddle.net/tze76pum/

Rhubarb Custard
sumber
1
Bagus, tapi bahasa Inggrisnya tidak terlalu umum.
Hobi Calvin