Tạo một hình vuông mã với từ yêu thích của bạn


47

Chọn 6 chữ cái tiếng Anh yêu thích của bạn mà không có chữ cái lặp đi lặp lại , chẳng hạn như wombat.

Viết chương trình trong một lưới các ký tự N × N mà không có nhận xét sao cho mỗi hàng và cột chứa tất cả các chữ cái của bạn bằng chữ thường theo bất kỳ thứ tự nào. Chương trình phải xuất định nghĩa từ của bạn trong 36 ký tự trở lên .

Quy tắc

  • Đầu ra cho thiết bị xuất chuẩn. Không có đầu vào.
  • Từ của bạn phải có trên Dictionary.com và chỉ chứa az. Không có danh từ riêng, không viết tắt, không viết tắt, không co thắt.
  • Chương trình và đầu ra của bạn chỉ có thể chứa các ký tự ASCII có thể in được (mã hex 20 đến 7E). (Điều này không tính các dòng mới cần thiết trong lưới chương trình.)
  • Nhận xét là bất cứ điều gì mà trình biên dịch hoặc trình thông dịch truyền thống bỏ qua. Bạn có thể sử dụng mã không đóng góp cho đầu ra hoặc không chính thức được thực thi.
  • Định nghĩa đầu ra phải đúng ngữ pháp và chính xác, nhưng chắc chắn có thể buồn cười hoặc thông minh.
  • Bất kỳ hàng hoặc cột nào ít nhất chứa 6 chữ cái duy nhất của bạn bằng chữ thường đều hợp lệ. Đường chéo không quan trọng.

Chấm điểm

Đây là mã golf nhưng vì tất cả các bài nộp phải ở cùng một hình vuông, bạn có thể chỉ định điểm của mình bằng N. N thấp nhất sẽ thắng, và tất nhiên N không thể dưới 6. Trong trường hợp quan hệ, câu trả lời được bình chọn cao nhất sẽ thắng.

Thí dụ

Nếu từ của bạn là wombatchương trình của bạn có thể trông như thế này (N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

Lưu ý rằng mỗi hàng và mỗi cột có các ký tự w o m b a t.

Đầu ra có thể là: (40 ký tự)

Cute short-legged Australian marsupials.

OK, bạn phải tạo một lưới bằng cách sử dụng một từ 6 chữ cái, nhưng sau đó tôi không hiểu kết quả đầu ra: "Thú có túi chân ngắn dễ thương của Úc."
Anh em họ

@CousinCocaine Đó là một mô tả về dạ con. Bạn nên đưa ra một mô tả ngữ pháp và chính xác của từ bạn chọn.
Chương trìnhFOX

Vì đây là mã golf, ai quyết định điều gì đúng? "Loài thú có túi chân ngắn dễ thương của Úc" hay "loài thú có túi chân ngắn"?
CousinCocaine

5
Ý tưởng: Có từ " golfed" và định nghĩa "a description of this program's code"(cho bất kỳ ai có thể tìm ra cách thực hiện việc này!).
Doorknob

6
chết tiệt, tôi không có từ dài 6 ký tự yêu thích
user902383

Câu trả lời:


18

Perl - nho - 11

chỉnh sửa: Tôi vô tình thực hiện 12 dòng này ...

$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)

Đầu ra:

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

Cập nhật!

Tôi đã loại bỏ một dòng để giảm xuống còn 11 nhưng tôi phải thay đổi câu. Hy vọng rằng tôi đã không phạm sai lầm lần này!

$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

Đầu ra:

A purple game? No, a great grape; eat

Đầu ra là 37 ký tự.


Tôi thích bài này chủ yếu vì bài thơ đầu ra nhỏ. Thật xấu hổ vì nó không phải là một bài haiku :)
Matt Fletcher

1
Đây là 12x11 ...
Schism

@schism wow ... Bắn! Tôi sẽ sửa chữa nó. Cảm ơn!
hmatt1

Sắp chấp nhận điều này, nhưng nó vẫn cao 12.
Sở thích của Calvin

47

Javascript - hành động - 15x15

"Chắc chắn không phải là ngắn nhất, nhưng 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)

Liên kết đến

đầu ra jsfiddle (37 ký tự):

action means PEW PEW PEW PEW PEW PEW 

Hàng đầu tiên của bạn nên chứa chữ thường a.
Sở thích của Calvin

@ Calvin'sHob sở thích Bạn đúng. Tôi sửa nó rồi.
izlin

35

Befunge 93, n = 13

Điều này hoạt động bằng cách chuyển hướng chuỗi với "v>". Điều này chỉ hoạt động khi độ dài cạnh và độ dài từ là đồng thời và khi độ dài cạnh lớn hơn 11. Ngay bây giờ, nó hoạt động cho "từ" vwombat, và do đó cho 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>:#,_@

Đầu ra Cute short-legged Australian marsupial


25

C (từ: "công cụ tìm", 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}

Được biên dịch với GCC, với các tùy chọn -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr="".

Nó xuất ra it's defined as a thing that can find other things(50 ký tự). Tôi tin rằng nó tuân theo tất cả các quy tắc, nhưng hãy nói cho tôi biết nếu có bất kỳ sai lầm!


3
Có vẻ đúng, mặc dù tôi không điên về tất cả các tùy chọn trình biên dịch.
Sở thích của Calvin

1
Tất nhiên, tôi bẻ cong các quy tắc một chút ở đây. Lúc đầu, tôi sẽ định nghĩa rất nhiều, đó là lý do tại sao tôi chọn từ "công cụ tìm" (vì nó chứa gần như cùng một chữ cái là "định nghĩa").
maxdefolsch

9
nó không phải là một ý tưởng tốt để sử dụng macro. nếu được phép, bạn có thể nói n = 6 và biên dịch nó với những điều sau:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe

Điều đó đúng, tôi thậm chí không nghĩ về điều đó.
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"."

Ví dụ wombat được mã hóa trong GolfScript. Đầu ra là

Cute short-legged Australian marsupials.

như được đưa ra trong câu hỏi. Phần thú vị là bạn có thể sử dụng hầu hết các từ và câu trả lời và chỉ cần chèn các chữ cái tương ứng vào giải pháp miễn là bạn không tạo ra một GolfScript tích hợp rất hiếm p, nlà những từ rõ ràng. Tất cả các kết hợp khác dẫn đến các biến GolfScript hợp lệ theo mặc định là không có op-op.


Vì vậy, tôi đoán người ta có thể cắt giảm đáng kể điều này bằng một cụm từ thông minh sử dụng rất nhiều chữ cái trong từ.
Martin Ender

@ MartinBüttner Tôi đã thử, nhưng 36 ký tự làm cho nó khá khó.
Howard

Tôi đã sử dụng phương pháp của bạn để đệ trình "hình vuông" (xem bên dưới). Đó thực sự là một nhân vật lớn hơn của bạn, nhưng với một số thay đổi thông minh xung quanh, có thể nén nó.
Martin Ender

18

Befunge-98 (n = 12)

Tôi chọn kelvin vì nó có av trong đó. Đầu rakelvin 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

thật không may, Si templà 29 ký tự ngắn 36 .;)
Martin Ender

Dường như bất cứ khi nào tôi đăng bài trong Befunge-93, ai đó sẽ theo dõi với một giải pháp Befunge-98 tương tự ...
Zaq

@Zaq đừng lo lắng, dù sao thì -93 cũng vui hơn.
xem

Dòng 2 không có i.
Schism

Ngoài ra, dòng 4 thiếu a kvà cột 9 thiếu một e.
Schism

11

Con trăn, n = 15

Lời là "ca nô"

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()

Đầu ra:

Secret weapon of the Canadian navy

Đây là 16x15!
Ly Giáo

Cảm ơn ... tại một số điểm tôi đã nhầm lẫn và cảm thấy cần phải thêm dòng duy nhất canoestrong đó. Đã sửa.
Gerrat

10

Perl - lặp lại - 11

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

Đầu ra:

repeat
repeat
repeat
repeat
...keeps going

Nhìn lại có lẽ tôi nên làm điều này một vòng lặp.


12
Thiếu từ mà không có yêu cầu lặp lại chữ cái .
Howard

3
@Howard Có ít nhất 2 e'mỗi dòng mặc dù vậy tôi nghĩ rằng tôi cũng có thể đăng nó.
hmatt1

6

Ruby ,, hatersN = 10

Sau nhiều giờ cố gắng bằng tay, viết chương trình tạo và điều chỉnh các tham số, cuối cùng tôi cũng đã tìm được giải pháp cho N = 10!

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

Đầu ra Haters nurse hate in hardest hearts., chính xác là 36 ký tự. Hãy thử trực tuyến!

Tôi đã chọn Ruby vì các biến của nó không cần $ ( Perl ) và các chuỗi trích dẫn đơn có thể chứa các dòng mới ( Python ). Thực tế là trphương pháp sử dụng hai chữ cái trong từ của tôi là một phần thưởng bất ngờ. Cốt lõi của chương trình là đơn giản:

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

Tất nhiên, việc sắp xếp tất cả các chữ cái để xếp hàng là không đơn giản. Tôi đã trải qua một số biến thể trên cùng một cấu trúc và đã học được một vài điều về Ruby trong quá trình này ( trkhông cần dấu ngoặc đơn và ?\slà một cách khác để có được một khoảng trắng). Có nhiều ngõ cụt và một số dương tính giả. Và rồi ... thành công!

Đây là ý chính của chương trình tạo hack cùng nhau của tôi, nếu có ai quan tâm.


5

Golf (n = 10)

Golf đầu tiên của tôi! Nó inkelvin 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

"Lowe" có nghĩa là gì?
aditsu

1
dictionary.com nói rằng nó có thể có nghĩa là thấp
waylon531

Điều đó chỉ đề cập đến động từ, có nghĩa là: đốt cháy; rạo rực / (của một người) để cảm nhận những cảm xúc mạnh mẽ; phát sáng với sự phấn khích. Tôi không thấy cách nó hoạt động ở đây.
aditsu

Nhìn vào trích dẫn ở phía trên bên phải của trang
waylon531

1
Xin lỗi, nhưng "lowe" là một chút quá tối nghĩa. Tôi sẽ chấp nhận điều này nếu bạn có thể làm cho nó "thấp" hoặc "thấp hơn".
Sở thích của Calvin

5

GolfScript, 13x13

Không phải nhỏ nhất ...

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..."

... nhưng ...

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

(Việc ngắt dòng trong các từ là có chủ ý, vì nếu không, tôi sẽ có khoảng trắng ở đầu hoặc cuối trông sẽ vuông hơn.)


4

Con trăn, N = 11

Lời là "cha mẹ". Mã này không đẹp, nhưng nó hoạt động.

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

Đầu ra: parent: a person that made a person

Chỉnh sửa: Bằng cách nào đó tôi đã bỏ lỡ thực tế là các cột cũng phải chứa từ này. Nhìn lại, một ngôn ngữ bao gồm các ký tự nội tuyến là một phần của ngôn ngữ không phù hợp với câu đố này.


4
Đẹp, nhưng không phải cột nào cũng chứa từ parent. Ví dụ, cái đầu tiên không có a.
Chương trìnhFOX

2
Nó vẫn còn thiếu một bó. pbị thiếu trong 6 và 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.
Schism

2

Pip , n = 14 (không lọc)

Ngôn ngữ mới hơn câu hỏi. Từ này là 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"  :)

Đưa ra định nghĩa sau (thừa nhận không đầy đủ):

quines in quines in, in quines, in quines, in quines, in quines, in quines, in quines, in quines, in quines, in quines, in quines, in quines, in quines quines, in quines, in quines, in quines, in quines

Hãy thử trực tuyến!

Do đó, phần ý nghĩa của mã chạy:

++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"

Phần còn lại của mã là không có tùy ý. Khó khăn chính trong các phần "phụ" là không bao giờ đánh giá được q, vì nó sẽ nhắc người dùng về một dòng đầu vào (không phải là vấn đề trên TIO, nhưng tôi muốn làm cho nó chính xác trong mọi môi trường). Tôi đã sử dụng các toán tử logic ngắn mạch |&, và ternary ?, để ngăn chặn qđánh giá.

1 Dictionary.com có ​​một mục cho quine , với một phần về ý nghĩa lập trình ở phía dưới. Vì "quine" là một danh từ đếm được, tôi sẽ lập luận rằng "quines" là một từ hợp lệ.


1

Javascript, N = 8

Lời của tôi là cảnh báo .

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

Mã của tôi đưa ra định nghĩa của chức năng cảnh báo javascript nhiều lần. Định nghĩa cảnh báo của Javascript là "function alert () {[mã gốc]}".

Chỉ có ba dòng mã đầu tiên thực sự đóng góp vào đầu ra. 5 dòng cuối cùng là lỗi cú pháp nhưng các quy tắc ban đầu nói rằng không phải tất cả các mã phải được thực thi miễn là đầu ra là chính xác.

Đây là một liên kết đến fiddle: http://jsfiddle.net/tze76pum/


1
Đẹp, nhưng tiếng Anh không phổ biến lắm.
Sở thích của Calvin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.