Anti-golfscript anti-golf:GolfScriptまたはJがあなたの(従来の)langによってアウトゴルフされるタスクを作成する[終了]


29

次の3つを作成する必要があります。

  1. タスクのステートメント、T
  2. 一般的にゴルフのために使用されていない言語でのタスクのソリューション、A
  3. ゴルフに一般的に使用される言語でのタスクの解決策、BBを膨らませてスコアを上げようとしないで、代わりにBが競合他社によって書かれたように考えてください。

定義にtypically used for golfingは常識を使用し、他のユーザーの楽しみを最大限に活用してください。

他のユーザーがより良いBsを提案するかもしれません(他の「ゴルフ」言語を含むかもしれません)。

得点は(length_in_bytes(B)+5)/(length_in_bytes(A)+5)、多いほど良い。(得点式を変更する必要がありますか?..)

主なアイデアは、通常codegolfで適切に機能する言語が問題に対処するタスクを考案することです。それは、与えられたタスクにおける通常の言語の突然の強さ、またはいくつかのゴルフラングの突然の弱さである可能性があります。

などの特定のプログラミング言語に言及するタスクは避けてくださいInput a string and execute it as a Scheme code


1
これをコードゴルフの代わりに人気コンテストにすると思います。そうでなければ、人々はそれが「最短コード勝ち」ではないと文句を言うでしょう。
ビクターStafusa 14年

OK、人気コンテストに変更します。より良いタイトルまたはより良いスコアリングを提案することもできます。
Vi。

以前の質問に該当すると思いますか?codegolf.stackexchange.com/questions/18633/... Jソリューションは54個の文字である一方、perlのソリューションは48文字です
user12205

1
lang Bを指定できますか(ゴルフが得意であれば)。または、「言語<insert language name>のプログラムがあり、長さ<n>の非常に短いソリューションがあります」と言うことができますか?
ジャスティン14年

1
ところで、Perlのような一部の言語は、コンテキストに応じてA側とB側の両方に配置できます。
Vi。

回答:


14

私の前の質問「正弦波の印刷(垂直)」は、この時点で適格です。解決策としてここに投稿します。また、元の質問に対する短い解決策をいくつか考え出せることを期待しています。

Viの要求に応じて、質問の要約を投稿します。

端末上で垂直にスクロールする連続正弦波を印刷します。プログラムは終了せず、ウェーブを継続的にスクロールする必要があります(SIGINTを除く)。オーバーフローは問題ではないと想定することができます(つまり、カウンターをインクリメントする無限ループ、または無限再帰を使用できます)。

波は次のプロパティを満たしている必要があります。

  • 振幅= 20文字(ピーク振幅)
  • 期間= 60〜65行(含む)
  • 出力は、スペース、改行、 |
  • 出力の各行の後、50msの間一時停止します

私の元の質問にはサンプル出力がありますが、ここでは投稿しません。これは私の答えを途方もなく長くするからです。私の元の質問はここに見ることができます:正弦波の印刷(垂直)

A現在最短:48文字のPerlソリューション:https : //codegolf.stackexchange.com/a/18655/12205

print$"x(25+20*sin).'|
';$_+=.1;`sleep .05`;do$0

B現在最短:54文字のJソリューション:https : //codegolf.stackexchange.com/a/18649/12205

($:+&0.1[6!:3@]&0.05[2:1!:2~' |'#~1,~[:<.20*1+1&o.)0  




現在、この回答のスコアは1.113(非常に低いスコア)です。


現在の式による現在のスコアは約1.113
Viです。

@Vi。この回答を削除する必要がありますか、またはしばらく待って何が起こるかを確認する必要がありますか?後者の場合、どのくらい待つ必要がありますか?
user12205 14年

このステートメントは、文字ではなくバイトを示しています。UTL-8に変換されたAPLソリューションは、61バイト(UTF-16の場合は70バイト)を作成しました。
Vi。

2
あなたはPerlが、通常のゴルフのために使用される言語ではありませんが、それは最初のワードと関連していた言語だと主張しているゴルフ!56歳のRubyは、あなたの質問に対する現在の回答では実際の言語Aのように見えます。
ピーターテイラー14年

8

2つの数字を追加

STDINから2つの数値を取得し、それらを加算します。浮動小数点数をサポートする必要があるため、0.5 + 1.5は2に等しくなければなりません。

Perl 5(で-E

say<>+<>

GolfScript

n%'+'*'"#{
}"'n/\*~

として計算されたスコア(24+5)/(8+2+5) = 1.9(3)-Eプログラムバイトとしてもカウントされます。
Vi。

あなたはPerlが、通常のゴルフのために使用される言語ではないと主張しているが、それは最初のワードと関連していた言語です:私は、エースに行われたのと同じコメントゴルフ
ピーターテイラー14年

また、GolfScriptプログラムが機能しません。動作するプログラムは、n%'+'*'"#{ }"'n/\*~その間の文字{}がリテラル改行(コメントではサポートされていない)である場合です。
ピーターテイラー14年

@ PeterTaylor、GolfScriptと比較して、Perlは「通常の」言語です。Javaと比較すると、「ゴルフ」言語です。
Vi。

1
このためのJは実際にはそれほど悪くはありません+/".1!:1,~1。APLはおそらくさらに小さくなります。
algorithmshark 14年


7

スコア48/37または1.(297)

T:実行からちょうど1時間(可能な限り1秒以内など)でプログラムを終了するコードスニペットを作成します。例外を心配しないでください。例外は処理できません。

A:Java(32)

Thread.sleep(3600000);int a=1/0;

B:Befunge 98用で、TIMEフィンガープリントが必要です(43)

"EMIT"4(HMS00p01p02p#;gS-!01gM-!H-!++3-!j;@

これは、実行時に時間、分、および秒を取り、セル02、01、および00に配置します。その後、;2番目の部分にスキップします。2番目の部分は次のように機能します。

g          get the value at 00
"EMIT"4(S) get the current time in seconds
-!         subtracts the values and changes a 0 to 1, anything else to 0

分と時間についても同様です。

++  sums up the values
3-! i the sum is 3, we get a 1, otherwise, we get a 0.
j   jump over the next that many cells
;   skip code execution until the next ;
@   end program

行の終わりに達すると、Befungeは自動的に行の先頭に戻ることに注意してください。


見てわかるように、特定の時間を待つことに関しては、Befungeは良くありません。ただし、Javaは悪くありません。


9
APL:⎕DL 3600
マリヌス14年

14
Javaは通常通り読み込みclass Main{public static void main...
Viに。

3
@Vi。「コードスニペット」を参照してください。基本的に、それはそれ以上ではなく、実際に作業を行うコードを必要とします。
ジャスティン14年

2
Befungeについては知りませんが、Javaスニペットは仕様で要求されている「プログラムを終了」しません。それにはSystem.exit(0);mainメソッドで睡眠をラップするかラップする必要があります。
ピーターテイラー14年

3
@DoorknobofSnowはコンパイルに失敗:error: not a statement
ボブ・

5

特定のテキストファイルを出力する(498.388888ポイント)

目標の出力はこちらです。

印刷するPython 3.4.3スクリプトは49バイトです。

for b in dir(__builtins__):print(eval(b).__doc__)

出力文字列をラップし、その中に出現"..."するそれぞれ"をエスケープすることにより、目標出力に等しい単純なCJamプログラムは26908バイトになります。


非常に賢いですが、「特定の言語」の制限に違反している可能性があります(確かにあいまいです)。
BMac

最も近い規則は、「特定の言語に言及しないこと」です。Pythonは言及されていませんが、明確に意味されています。
Vi。

ええ、この答えは少し冗談です。規則が一種の滑りやすい斜面であることを指摘したかったのです。たとえば、各docstringのSHA1チェックサムを取得して、出力をさらに「マングル」したとしたら、「この文字化けした16進数の数字は言語固有である」と主張するのは非常に奇妙です:)
Lynn

もっと「公平な」答えをしたいなら、おそらくMathematicaを使うでしょう。数千バイトのCJam / Pyth /その他を必要とする非常に多くの非常にドメイン固有のことを行うことができます。しかし、悲しいことに、私は言語を知りません。
リン

出力へのリンクが無効です。
pppery

4

「Hello world!」と発声してください (50/26≈1.92)

「Hello world!」と言うメッセージボックスを表示します。

JavaScript

alert('Hello world!')

DOMレベル0+をサポートするブラウザー内。

Perl

use Win32;Win32::MsgBox('Hello world!','',48)

Win32 :: GUIを使用してActivePerlで実行します。


alertは本質的にJSの一部ではなく、GolfScriptプログラムは単なるコメントです。
ピーターテイラー14年

私は答えをプレーンPerlを使用するように変更しました。
歯ブラシ14年

3

「Hello world!」を出力します ユーザーが「q」を押すまで、1.842 105/44 = 2.386

  1. 「Hello world!」を印刷 (改行を含む)。
  2. ユーザーがキーを押しますが、これは画面にエコーされません。
  3. 押されたキーが「q」になるまで繰り返します。

QBasic(52 39文字)

1?"Hello world!":IF"q"<>INPUT$(1)THEN 1

元の回答を投稿してから、QB64で自動フォーマットをオフにできることを発見しました。:^ Dの行番号と?ショートカットを使用PRINTすると、Cに似た言語の三項式のように見えます。

最初のバージョン:

PRINT "Hello world!"
IF INPUT$(1) <> "q" THEN RUN

Perl 5(100文字)

while("q"ne$e){print"Hello world!\n";system"stty cbreak -echo";$e=getc;system"stty -cbreak echo";}

上記は(特定の?)UNIXシステム(Ubuntu 12.04でテスト済み)でのみ動作します。Term :: ReadKeyモジュールを使用すると、クロスプラットフォームに移行して91文字まで取得できる可能性がありますが、テストしていません。

use Term::ReadKey;while("q"ne$e){print"Hello world!\n";ReadMode 3;$e=ReadKey 0;ReadMode 0;}

1

こんにちは、世界(3 1/3ポイント)

を出力するプログラムを作成しますHello World.

HQ9 +(1文字)

これは「一般的にゴルフに使用される」言語ではないため、ここに適合すると思います。働く方法により、このインタプリタ

H

GolfScript(15文字)

GolfScriptであっても、もっと短くなるとは思わない。

"Hello World."

8
私は考えていないHQ9+としてスーツを言語。トリック/なぞなぞ/楽しみのために設計されています。Brainfuck / unlambda /その他の難解な言語もAに適合しないようです。
Vi。

@Vi .:しかし、通常はゴルフに使用されません。
コンラッドボロスキー14年

4
あなたは、使用しようhovewerできるHQ9+よう、Bの言語とJavaまたは、そのような...でそれを打つ
Viに。

7
階層があるように見えます:Javaと比較して、Perlはgolflangです。Perlと比較して、GolfScriptはgolflangです。GolfScriptと比較して、HQ9 +はゴルフ言語です...
Vi。

@Vi .:タスクの説明を注意深く確認しました。HQ9 +は、「99ボトル」と「Hello、world」という2つの特定のタスクを除き、ゴルフには使用されません。HQ9 +が他のプログラミング言語で勝つ他のタスクを示すことができない限り、それが悪用されたとしても、定義に適合すると思います(ちょっと、人気コンテストです)。HQ9 +は、これらの2つのタスクに関係のないゴルフには使用されません。そのため、通常はゴルフに使用されません。2番目は明らかにCodeGolf用に設計されています-GolfScriptです。
コンラッドボロスキー14年

0

出力「Hello world!」、33/97 = 2.94

出力するプログラムを書く Hello world!

ArduinoまたはGML

Serial.print("Hello world!")

または

show_message("Hello world!")

両方とも28文字です。

GTB

私はGTBを多くのゴルフに使用しています(特に私自身がGTBを作成し、チューリングが完成しているため)。残念ながら、小文字のサポートは限られています(TI-84計算機では対応できないため)。これはおそらく、Hello world!を出力できる最短のGTBプログラムです。

S;"lower",1,1)→_~"H"+S;"expr(",1,1)+_+_+S;"cos(",2,1)+" W"+S;" or ",2,2)+_+S;" and ",4,1)+"!

92文字。


GTBバージョンはシリアルポートにも出力しますか?
Vi。

GTBバージョンは意図的にさまざまなcoss exprsで膨らんでいますか、それとも本当に何かを通常の方法で出力することはできませんか?または、"文字は実際には文字列リテラルではなく、私を混乱させません...
Vi。

@Vi。それはまったく肥大化していません... exprからe、下から2つのl、cosからo、またはfrom、またはl、下から、dからandを取り除く必要があります。
ティムテック14年

'他のユーザーはより良いBsを提案するかもしれません(他の「ゴルフ」言語を含むかもしれません)'--- golfscriptを試してみましょう:"Hello world!"
ジョンドヴォルザーク

@JanDvorakあなたはおそらく正しいです。
ティムテック14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.