用您喜欢的单词使代码平方


47

选择您喜欢的没有重复字母的 6字母普通英语单词,例如wombat

不带注释的N×N个字符的网格中编写程序,以使每一行和每一列都以小写形式以任意顺序包含单词的所有字母。该程序必须输出36个字符或更多字符的单词定义。

规则

  • 输出到标准输出。没有输入。
  • 您的单词必须在Dictionary.com上并且只能包含az。没有专有名词,缩写,缩写,紧缩。
  • 您的程序和输出只能包含可打印的ASCII字符(十六进制代码20至7E)。(这不计入程序网格中的必要换行符。)
  • 注释是编译器或解释器传统上忽略的任何内容。您可以使用对输出无贡献或未正式执行的代码。
  • 输出定义应该是语法上和准确的,但肯定是有趣或聪明的。
  • 至少包含单词的6个唯一字母小写的任何行或列均有效。对角线无所谓。

计分

这是代码高尔夫,但是由于所有提交的文件都必须采用相同的正方形格式,因此您可以简单地用N指定得分。最低的N获胜,当然N不能低于6。如果是平局,则以票数最高的答案为准。

如果您说的话,wombat您的程序可能如下所示(N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

注意,每一行和每一列都有字符w o m b a t

输出可能是:(40个字符)

Cute short-legged Australian marsupials.

好的,您必须使用6个字母的单词创建一个网格,但是我不明白输出结果:“可爱的短腿澳大利亚有袋动物”。
CousinCocaine 2014年

@CousinCocaine这是对袋熊的描述。您应该输出所选单词的语法准确描述。
ProgramFOX

由于这是代码高尔夫球,谁来决定什么是对的?“可爱的澳大利亚短腿有袋动物”还是“短腿的有袋动物”?
CousinCocaine 2014年

5
想法:将单词“ golfed”和定义"a description of this program's code"(对于任何能够弄清楚该怎么做的人!)。
门把手

6
该死,我没有最喜欢的6个字符长字
user902383

Answers:


18

Perl-葡萄-11

编辑:我不小心使这12行...

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

输出:

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

更新!

我取消了一行,以使其降至11,但是我不得不更改句子。希望这次我没有犯任何错误!

$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

输出:

A purple game? No, a great grape; eat

输出为37个字符。


我喜欢这首歌,主要是因为它的输出诗很少。不好意思,这不是a句:)
Matt Fletcher 2014年

1
这是12x11 ...
Schism

@schism哇...开枪!我会解决的。谢谢!
hmatt1 2014年

即将接受,但它仍然是12高。
卡尔文的爱好2014年

47

Javascript-动作-15x15

“绝对不是最短的PEW,而是PEW PEW。” - 占士邦

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)

链接到jsfiddle

输出(37个字符):

action means PEW PEW PEW PEW PEW PEW 

您的第一行应包含小写字母a。
加尔文的爱好2014年

@ Calvin'sHobbies你是对的。我修好了它。
伊兹林2014年

35

Befunge 93,n = 13

这可以通过使用"v和重定向字符串来实现>"。这只有在边长和字长互质,当侧长度大于11眼下,它的工作原理为“字”的作品vwombat,因此对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>:#,_@

产出 Cute short-legged Australian marsupial


25

C(单词:“ 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}

与GCC一起编译,带有options -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr=""

输出it's defined as a thing that can find other things(50个字符)。我相信它遵循所有规则,但是如果有任何错误,请随时告诉我!


3
看起来是正确的,尽管我对所有编译器选项都不感到疯狂。
加尔文的爱好

1
当然,我在这里稍微修改了规则。最初,我要进行很多定义,这就是为什么我选择“查找器”一词的原因(因为它包含与“定义”几乎相同的字母)。
maxdefolsch 2014年

9
使用宏不是一个好主意。如果允许的话,您可以说n = 6并用以下代码进行编译:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe

是的,我什至没有想到。
maxdefolsch 2014年

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

用GolfScript编码的袋熊示例。输出是

Cute short-legged Australian marsupials.

如问题中所给。有趣的是,您可以使用大多数单词和答案,并且只需将相应的字母插入解决方案中即可,只要您不生成内置的GolfScript(这是非常罕见的pn就可以了。所有其他组合会导致有效的GolfScript变量,默认情况下为no-op。


因此,我想人们可以用一个巧妙的短语来大大减少这一点,该短语使用了单词中的许多字母。
马丁·恩德

我尝试了@MartinBüttner,但36个字符使它变得相当困难。
2014年

我使用了您的方法进行“方形”提交(请参见下文)。它实际上比您的字符大一个字符,但是经过一些巧妙的转换,可以压缩它。
Martin Ender 2014年

18

Befunge-98(n = 12)

我选择开尔文是因为其中有av。产出kelvin 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

不幸的Si temp是,缺少36个字符是29个字符;;)
马丁·恩德

看来,每当我在Befunge-93中发帖时,都会有人跟进类似的Befunge-98解决方案……
Zaq 2014年

@Zaq不用担心,无论如何,-93更有趣。
seequ 2014年

第2行没有i。
Schism

此外,第4行缺少a,k而第9列缺少a e
Schism

11

Python,n = 15

词是“独木舟”

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

输出:

Secret weapon of the Canadian navy

这是16x15!
分裂

谢谢...在某些时候我误算了,觉得有必要在其中添加单行canoes。固定。
Gerrat 2014年

10

Perl-重复-11

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

输出:

repeat
repeat
repeat
repeat
...keeps going

回首过去,也许我应该使它成为一个循环。


12
缺少没有重复字母要求的单词
2014年

3
@Howard e每行至少有2个,所以我想我也应该发布它。
hmatt1 2014年

6

红宝石haters,N = 10

经过数小时的手工尝试,编写了一个生成器程序,并调整了参数,终于找到了N = 10的解决方案!

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

输出Haters nurse hate in hardest hearts.,正好36个字符。在线尝试!

我选择Ruby是因为它的变量不需要$Perl),并且单引号引起来的字符串可以包含换行符(Python)。该tr方法使用了我单词中的两个字母的事实是意外的收获。该程序的核心很简单:

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

让所有的字母来排队,当然,是不是很简单。我在相同的结构上经历了几种变体,并在此过程中了解了一些关于Ruby的知识(tr不需要括号,这?\s是获得空间的另一种方法)。有很多死胡同和一些误报。然后...成功!

如果有人感兴趣,是我被黑在一起的生成器程序的要点


5

Golfscript(n = 10)

我的第一个golfscript!它打印kelvin 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

“降低”是什么意思?
2014年

1
dictionary.com称其为低
Waylon531

那只指动词,意思是:燃烧;(某人)发火焰以感到强烈的情绪;兴奋地发光。我看不到这是怎么回事。
2014年

查看页面右上方的报价
waylon531

1
抱歉,“降低”有点晦涩难懂。如果您可以将其设置为“低”或“低”,我将接受。
卡尔文的爱好2014年

5

GolfScript,13x13

不是最小的...

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

... 但是 ...

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

(在这些单词中使用换行符是有意的,因为否则我将使用前导或尾随的空格,看起来空格较少。)


4

Python,N = 11

单词是“父母”。这段代码并不漂亮,但是可以正常工作。

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

输出: parent: a person that made a person

编辑:不知何故我错过了列还必须包含单词的事实。回想起来,一种包含结尾字符作为该语言一部分的语言不太适合此难题。


4
不错,但并非每列都包含单词parent。例如,第一个没有a
ProgramFOX

2
它仍然缺少一堆。p在6和8中丢失a::4,6,7,11. r:4,10,11. e:4,5,8,9,9,11. n:3,5,7,11. t:1,3,6, 8.
斯希姆

2

,n = 14(非竞争)

语言比问题要新。这个词是quines1个

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"  :)

输出以下(公认不完整)的定义:

奎因印花奎因,其中奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花,奎因印花奎因,印有奎因,奎尼有印,奎因,有奎尼,印有奎因

在线尝试!

代码的有意义部分因此运行:

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

其余代码是任意无操作。“填充器”部分中的主要困难是从不评估q,因为它会提示用户输入一行(TIO上不是问题,但我想在所有环境中均使其正确)。我使用了短路逻辑运算符|&,和三元?来防止进行q求值。

1 Dictionary.com在quine上有一个条目,底部是编程含义部分。由于“ quine”是一个可数名词,因此我认为“ quines”是一个有效的词。


1

Javascript,N = 8

我的意思是警报

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

我的代码多次输出javascript警报功能的定义。JavaScript的alert定义是“ function alert(){[native code]}”。

实际上只有前三行代码对输出有贡献。最后5行是语法错误,但是原始规则指出,只要输出正确,就不必执行所有代码。

这是小提琴的链接:http : //jsfiddle.net/tze76pum/


1
不错,但英语不太常见。
卡尔文的爱好2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.