問題タブ [code-golf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
12 に答える
3124 参照

language-agnostic - コードゴルフ:消灯

チャレンジ

入力ライトアウトボードを解決するための文字数による最短コード。

.ライト アウト ボードは、オフのライトとオンのライトの 2 つの文字で構成されるさまざまなサイズの 2D 正方形グリッドです*

ボードを解決するには、すべての「ライト」をオフにする必要があります。ライトのトグル (つまり、オンのときにオフ、オフのときにオン) は、一度に 5 つのライトになります - 選択されたライトとライトは + (プラス) の形でそれを囲みます。中央のライトを「選択」すると、ボードが解決されます。

消灯以来!ソリューションの順序は関係ありません。出力は、選択する電球のマークが付いた新しいボードになります。上記のボードの解決策は

オフにする側の電球がない隅でライトをオフにしても、オーバーフローしません。

この場合、右下の電球を選択すると、3 つの電球のみがオフになります。

テストケース



コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。

0 投票する
22 に答える
6388 参照

language-agnostic - コードゴルフ:ピアノ

チャレンジ

指定された長さの入力音符から始まるピアノ鍵盤の一部を出力するための文字数による最短コード。

入力は[ACDFG]#|[A-G]、キーボードの印刷を開始する音符()と、最初の音符を含む印刷するキーの長さを表す正の数で構成されます。

最初のキーは完全に印刷する必要があります。左の鋭いキーがある場合はカットされます。開始キーが鋭い場合と同じように、左のキーもカットされます。

シャープキーはカウントされず、白いキーのみがカウントされます。

テストケース



コードカウントには、入力/出力(つまり完全なプログラム)が含まれます。

0 投票する
35 に答える
9656 参照

code-golf - Code Golf: Tic Tac Toe

Post your shortest code, by character count, to check if a player has won, and if so, which.

Assume you have an integer array in a variable b (board), which holds the Tic Tac Toe board, and the moves of the players where:

  • 0 = nothing set
  • 1 = player 1 (X)
  • 2 = player 2 (O)

So, given the array b = [ 1, 2, 1, 0, 1, 2, 1, 0, 2 ] would represent the board

For that situation, your code should output 1 to indicate player 1 has won. If no-one has won you can output 0 or false.

My own (Ruby) solution will be up soon.

Edit: Sorry, forgot to mark it as community wiki. You can assume the input is well formed and does not have to be error checked.


Update: Please post your solution in the form of a function. Most people have done this already, but some haven't, which isn't entirely fair. The board is supplied to your function as the parameter. The result should be returned by the function. The function can have a name of your choosing.

0 投票する
3 に答える
3749 参照

c - n番目の素数を計算する最短の方法は何ですか?

「 n番目の素数を計算する」ための最短のCコードは何ですか?

意味のある文字の点で最短。つまり、セミコロン、空白以外の文字、キーワード、カンマの数

入力:

改行で区切られた、標準入力からの整数n 。入力は EOF で終了します。

出力:

入力nの直後に、n番目の素数を改行で区切って標準出力に出力します。

(素数は < 10,000、つまりn < 1,230 であると想定できます。)


テストケース:


私の試み:

この問題では、可読性は問題ではありません。時間とメモリの点でコストがかかるが、制約を満たすコードは、ここではより良いと見なされます。

0 投票する
70 に答える
11468 参照

language-agnostic - コードゴルフ:コラッツ予想

http://xkcd.com/710/にインスパイアされたコード ゴルフです。

チャレンジ

0 より大きい正の整数を指定すると、その数値の雹のシーケンスを出力します。

ヘイルストーン シーケンス

詳細については、ウィキペディアを参照してください。

  • 偶数の場合は2で割ります。
  • 奇数なら3倍にして1足すればいい。

これを出た数だけ1になるまで繰り返す(1以降続くと の無限ループに入る1 -> 4 -> 2 -> 1...

コードで説明するのが最善の方法である場合もあるので、ウィキペディアからいくつか引用します

このコードは機能しますが、追加の課題を追加しています。プログラムは、スタック オーバーフローに対して脆弱であってはなりません。したがって、反復または末尾再帰のいずれかを使用する必要があります。

また、大きな数を計算でき、言語にまだ実装されていない場合のボーナスポイント。(または、固定長整数を使用して大きな数のサポートを再実装する場合)

テストケース

また、コード ゴルフには、完全なユーザー入力と出力が含まれている必要があります。

0 投票する
23 に答える
3902 参照

language-agnostic - コードゴルフ:トライフォース

これは、このスレッドに触発された/引用されたものです:http: //www.allegro.cc/forums/thread/603383

問題

ユーザーが1から7の範囲の数値入力を提供するとします。入力はコンソールから取得する必要があります。引数はあまり望ましくありません。

入力が1の場合、以下を出力します。

1より大きい値は、上記のパターンで終わるパターンの倍数を生成する必要がありますが、対称的にスタックされます。たとえば、3は次のように出力する必要があります。

裏面も印刷するとボーナスポイント。

言語ごとに1つの答えを維持して、私たち全員が改善できるようにすることはできますか?

0 投票する
26 に答える
9141 参照

language-agnostic - コードゴルフ - パイの日

チャレンジ

SO でのコードゴルフのガイドライン

R文字を使用して半径の円の表現を表示し*、その後に π の近似値を表示するための、文字数による最短コード。

入力は単一の数値ですR

yほとんどのコンピュータはほぼ 2:1 の比率を持っているように見えるので、が奇数の行だけを出力する必要があります。これは、Rが奇数の場合、R-1行を印刷する必要があることを意味します。R=13明確にするための新しいテストケースがあります。

例えば。

編集:の奇数の値によって引き起こされる広範な混乱のため、R以下に示す 4 つのテスト ケースに合格するすべてのソリューションが受け入れられます。

π の近似値は、文字数の 2 倍を で割ること*によって得られます。
概算は、有効数字 6 桁以上である必要があります。
先頭または末尾のゼロが許可されているため、たとえば、33.000000、のいずれかがおよび003の入力として受け入れられます。24

コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。

テストケース

ボーナス テスト ケース

0 投票する
8 に答える
3460 参照

c - ちょうど 1 文字を変更して壊れたループを修正する

いくつかの複雑な C パズルがあるサイトを見つけました。現在、私はこれを扱っています:

以下は、マイナス記号を 20 回出力することを意図した C コードの一部です。しかし、あなたはそれに気づくことができます、それはうまくいきません。

上記のコードを修正するのは簡単です。この問題を興味深いものにするには、上記のコードを 1 文字だけ変更して修正する必要があります。既知の解決策は 3 つあります。この 3 つすべてを取得できるかどうかを確認します。

解決方法がわかりません。--に変更することで修正できることはわかっていますが、機能させるため++にどの文字を変更すればよいかわかりません。

0 投票する
16 に答える
4146 参照

language-agnostic - コードゴルフ:点をつなぐ

子供の頃からこれらの絵を覚えているかもしれませんが、今度はコンピューターに絵を描かせましょう(完全なASCIIの素晴らしさで)。楽しむ!

説明:

入力は、「フィールド」を説明する複数の行(改行で終了)です。このフィールドには「数字」が散在しています(空白で区切られています)。すべての行は同じ長さであると見なすことができます(スペースを最後まで埋めることができます)。

  • 数字は常に1から始まります
  • それらは自然数の順序に従います:すべての「次の数」は1ずつ増加します
  • すべての数値は、その左右で(少なくとも)1つの空白で囲まれています

タスク:

次の特性を使用して、これらの数値の間に自然な順序で を引きます(N <= 99と想定)。(1 -> 2 -> 3 -> ...N)

  1. +数字を' '文字に置き換えます
  2. 水平線の場合:' -'を使用します
  3. 垂直線の場合:' |'を使用
  4. 左と下または右と上に行く:/
  5. 左と上または右と下に行く:\

重要な注意事項:

  1. タイプ4および5の線を描画する場合、(座標x1、y1およびx2、y2に接続する点が与えられた場合)次のように仮定できますdistance(x1,x2) == distance(y1,y2)。または、言い換えると(ユーザーjballがコメントしたように):「水平方向または垂直方向に整列されていない連続する要素は、常にスラッシュまたはバックスラッシュの勾配に整列します」。

  2. ドットが接続されている順序に従うことが重要です(新しい線は古い線を打ち消す可能性があります)。

-サンプル入力1--

-サンプル出力1--

-サンプル入力2-

-サンプル出力2-ユニコーンリファレンス

勝者:

最短の解決策(コード文字数による)。入力は標準入力で読み取ることができます。

0 投票する
10 に答える
1930 参照

language-agnostic - コードゴルフ:イースタースパイラル

イースター・コード・ゴルフのセッションにスパイラルより適切なものは何ですか?
まあ、ほとんどなんでもいいと思います。

チャレンジ

アスタリスク ('*') で構成された素敵な ASCII スパイラルを表示するための、文字数による最短コード。

R入力は、スパイラルの x サイズになる単一の数値です。もう一方の次元 (y) は常にR-2です。Rプログラムは、常に奇数で >= 5 であると想定できます。

いくつかの例:

コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。どの言語でも使用できます。

私の簡単に勝てる 303 文字の長い Python の例:

さぁ、スパイラルに突入…