お気に入りの単語でコードを作成する


47

たお気に入りの6文字の一般的な英語の単語選んでいない文字を繰り返しなどを、wombat

各行と列に単語のすべての文字が小文字で任意の順序で含まれるように、コメントなしでN×Nの文字グリッドでプログラムを記述します。プログラムは、36文字以上で単語の定義を出力する必要があります。

ルール

  • stdoutへの出力。入力はありません。
  • あなたの言葉はDictionary.comにある必要があり、azのみを含んでいる必要があります。固有名詞、頭字語、略語、短縮形はありません。
  • プログラムと出力には、印刷可能なASCII文字(16進コード20〜7E)のみを含めることができます。(これは、プログラムグリッド内の必要な改行をカウントしていません。)
  • コメントは、コンパイラまたはインタープリターが従来無視していたものです。出力に寄与しないコード、または公式に実行されないコードを使用できます。
  • 出力定義は文法的かつ正確でなければなりませんが、確かに面白いか賢いかもしれません。
  • 単語の一意の6文字を小文字で少なくとも含む行または列はすべて有効です。対角線は関係ありません。

得点

これはコードゴルフですが、すべての提出物は同じ正方形形式でなければならないため、Nでスコアを指定するだけです。最低のNが勝ち、もちろん6未満のNは不可能です。同点の場合、最も投票数の多い回答が勝ちます。

あなたの言葉がwombatあなたのプログラムだった場合、次のようになります(N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

すべての行とすべての列に文字があること注意しくださいw o m b a t

出力は次のとおりです:(40文字)

Cute short-legged Australian marsupials.

OK、6文字の単語を使用してグリッドを作成する必要がありますが、出力がわかりません:「オーストラリアの足の短い足袋」。
いとこコカイン14

@CousinCocaineこれはウォンバットの説明です。選択した単語の文法的で正確な説明を出力する必要があります。
ProgramFOX 14

これはコードゴルフであるため、誰が正しいかを決定しますか?「オーストラリアの短い足の有袋類」または「短い足の有袋類」?
いとこコカイン14

5
アイデア:「golfed」という言葉と定義"a description of this program's code"(これを行う方法を理解できる人のために!)にします。
ドアノブ

6
いまいましい、私は好きな6文字長の言葉がありません
user902383

回答:


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文字です。


私はこれが主に小さな出力詩のために好きです。恥ではない俳句だった:)
マットフレッチャー14

1
これは... 12x11です
分裂

@schism wow ...撃て!直します。ありがとう!
hmatt1 14

これを受け入れようとしていますが、まだ高さは12です。
カルビンの趣味14年

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を含める必要があります。
カルビンの趣味14

@ Calvin'sHobbiesあなたは正しい。それを私が直した。
izlin 14

35

Befunge 93、n = 13

これは、との文字列をリダイレクトすることで動作します"v>"。これは、辺の長さと単語の長さが互いに素であり、辺の長さが11を超える場合にのみ機能vwombatwombatます。

"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(単語:「ファインダー」、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でコンパイル-Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr=""

出力しますit's defined as a thing that can find other things(50文字)。私はそれがすべてのルールに従うと信じていますが、間違いがあるかどうか私に教えてください!


3
正しいように見えますが、すべてのコンパイラオプションに夢中ではありません。
カルビンの趣味14

1
もちろん、ここで少し規則を曲げました。最初は多くの定義を探していました。だからこそ「ファインダー」という言葉を選びました(「定義」とほぼ同じ文字が含まれているからです)。
maxdefolsch 14

9
マクロを使用することはお勧めできません。許可されている場合は、n = 6と言って次のようにコンパイルできます"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
。– bebe

そうです、私もそれを考えていませんでした。
maxdefolsch 14

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変数につながります。


そのため、単語の多くの文字を使用する巧妙なフレーズを使用して、これを大幅に削減できると思います。
マーティンエンダー14

@MartinBüttner試しましたが、36文字が非常に難しいです。
ハワード14

「正方形」の提出にあなたのアプローチを使用しました(以下を参照)。実際にはあなたの文字よりも1文字大きいですが、巧妙にシフトすることで圧縮することが可能かもしれません。
マーティンエンダー14

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 temp36文字より短い29文字です。;)
マーティンエンダー

私がBefunge-93に投稿する時はいつでも、誰かが...似たBefunge-98溶液でフォローアップしているようです
ZAQ

@Zaqは心配しないでください、とにかく-93の方が楽しいです。
seequ 14

行2にはiがありません。
分裂14

また、行4にはaがなく、k列9にはa がありませんe
分裂14

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、そこにその単一行を追加する必要性を感じました。一定。
ジェラート14

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
滝の短い無手紙を繰り返した単語の要件を。
ハワード14

3
@Howard e行ごとに少なくとも2がありますので、投稿することも考えました。
hmatt1 14

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メソッドが私の単語の2つの文字を使用するという事実は、予想外のボーナスでした。プログラムの中核は簡単です:

# 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、スペースを確保するもう1つの方法です)。多くの行き止まりといくつかの誤検知がありました。そして...成功!

誰かが興味を持っているなら、ここに私のハッキングされたジェネレータプログラムの要点があります。


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

「lowe」とはどういう意味ですか?
aditsu 14

1
dictionary.comは、低意味することができますことを言う
waylon531

それは動詞のみを指します。ブレイズ/(人の)強い感情を感じる; 興奮して輝きます。ここでどのように機能するかわかりません。
aditsu

ページの右上の引用を見てください
waylon531

1
申し訳ありませんが、「lowe」は少しわかりにくいです。「低」または「低」にできる場合は、これを受け入れます。
カルビンの趣味14年

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 14

2
まだ不足しています。p6及び8に欠落しているa4、6、7、11:r4、10、11 e:4、5、8、9、11 n:3、5、7、11 t:1、3、6、 8.
分裂14

2

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

次の(明らかに不完全な)定義を出力します。

クインズクインズプリントクインズプリントクインプリントクインプリントクインプリントクインプリントクインプリントクインプリントクインプリントクインプリントクインプリントクインquines、印刷quines、印刷quines、印刷quines、印刷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の問題ではありませんが、すべての環境で修正したかったのです)。の評価を防ぐために、短絡論理演算子|and &とternary を使用しました。?q

1 Dictionary.comにはquineのエントリがあり、下部にプログラミングの意味に関するセクションがあります。「クイン」は可算名詞であるため、「クイン」は有効な単語であると主張します。


1

Javascript、N = 8

私の言葉は警告です。

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

私のコードは、javascriptアラート関数の定義を複数回出力します。Javascriptのアラートの定義は「function alert(){[ネイティブコード]}」です。

実際に出力に寄与するのは、コードの最初の3行のみです。最後の5行は構文エラーですが、元の規則では、出力が正しい限り、すべてのコードを実行する必要はないことが明記されています。

フィドルへのリンクは次のとおりです。http//jsfiddle.net/tze76pum/


1
いいけど、あまり一般的ではない英語。
カルビンの趣味14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.