タグ付けされた質問 「code-bowling」

コードボウリングは、ほとんどのバイトまたは複雑さで特定の(通常は単純な)問題を解決するための競争です。

21
手付かずでユニークなコードボウリング
あなたの挑戦は簡単です:一意のバイトのみを使用して、選択した言語でできるだけ長く元のプログラムを書きます。(そのリンクからコピーされた元のプログラムの完全な定義は、この質問の最後にあります。) そうです、紐は付いていません。コードは何もする必要がなく、エラーなしで実行され、元のプログラム(上記のリンク)の要件を満たし、使用するエンコードに重複バイトを含めません。 上記の説明と「元のプログラム」のリンクされた定義の目的で、エラーは、プログラムが完全に実行できないか、有限時間後にゼロ以外の終了コードで終了するものとして定義されます。 これはcode-bowlingであるため、最長ではなく最短でコードが勝ちます(バイトカウントで測定)。256個の異なるバイトが可能なため、理論的に可能な最大スコアは256です。同点の場合、最高スコアの最初の回答が勝ちです。 上記のリンクからコピーされた、元のプログラムの完全な定義は次のとおりです。 そのままのプログラムを、それ自体にエラーはないが、N文字の連続する部分文字列を削除して修正するとエラーになるプログラムとして定義してみましょう1 <= N < program length。 たとえば、3文字のPython 2プログラム `8` 長さ1の部分文字列を削除した結果、すべてのプログラムがエラーを引き起こします(実際には構文エラーですが、あらゆるタイプのエラーが発生します)。 8` `` `8 また、長さ2の部分文字列を削除した結果、すべてのプログラムがエラーを引き起こします。 ` ` たとえば、エラーのない`8プログラムであった場合、部分文字列の削除の結果はすべてエラーに`8`なるため、初期状態ではありません。

30
「Code Bowling」というテキストを出力します
コードボウリング Brunswick Bowlingに雇われCode Bowlingて、モニターにテキストを出力する簡単なプログラムを作成しました。この会社はかなりの金額の価値があるとあなたはかなりのためにそれらを詐欺することができます感じビットキャッシュの。 職務記述書には、彼らが得点に基づいて支払うことを明確に示しており、得点システムを有利に操作し、これらの人から可能な限り最大の給与を得ることができると確信しています。そうするためには、得点システムがあなたをそうすることを妨げるように設計されているにもかかわらず、あなたのプログラム/関数にできるだけ多くのコードを詰めることを要求します。 貯金箱を取り出して、コードを書きましょう! チャレンジ ここでの課題は、Code Bowlingここに記述されているとおりに、できるだけ高いスコアでテキストを単に出力することです。(以下のセクション:スコアリングシステムを参照) 先頭と末尾の改行(改行)は許容されます。 コードは、プログラム全体または単なる実行可能関数である場合があります。 ルール 必須:この課題は、Code-Bowling:Common Rules、Revision 1.0.0を使用しています。詳細については、メタを参照してください。 文字:バイト比 Code-Bowlingでは、バイトカウントよりも文字カウントが優先されます。これの明白な理由は、マルチバイトのユニコード文字(例:🁴)をシングルバイトのユニコード文字の代わりに使用してバイト数を増やすことであり、ハイバイトのユニコード文字で最も多くの変数の名前を変更する人についてボウリングをより多くすることです最も戦略的に意味のある複雑なコードを作成する人よりも。 変数/関数/オブジェクト名 すべての変数名(またはオブジェクトポインター、関数名など)は1文字である必要があります。2文字の変数名を使用する唯一の許容時間は、可能な1文字の変数がすべて使用された後です。3文字の変数名を使用する唯一の許容時間は、考えられるすべての2文字の変数が使用された後です。等。 未使用のコード すべてのコードを使用する必要があります。個々のキャラクター(またはさまざまなキャラクターのセット)が削除された場合、プログラムが意味することは、タスクを常に適切に完了することに失敗しなければなりません。当然、プログラムのサブセットは、プログラムの残りがなければタスクを単独で完了することはできません。 コメント プログラム/関数で何らかの形で利用されない限り、文字数に対するコメントは許可されません。 スコアリングシステム: パングラムチャレンジ: パングラムは、すべての文字を少なくとも1回使用する文です。(速い茶色のキツネは怠laな犬を飛び越えます)。 このチャレンジタイプには、完全なパングラムが理論上の最大スコアを達成するように設計されたスコアリングシステムがあります(ただし、すべてのキャラクターを少なくとも1回使用する必要はありません)。さらに、任意のキャラクターを複数回使用するとペナルティが発生します。この課題は、アルファベット文字だけでなく、それ以上にも拡大します。 スコア指標: 使用される各キャラクターは、あなたのスコアを1増加させます。 英数字(az、AZ、0-9)を繰り返し使用すると、繰り返しごとに3ポイント減点されます(最初の使用では減点されません)。 ([!?.-,":';])角括弧を含む基本的な句読点を繰り返し使用すると、繰り返しごとに2ポイント減点されます。 {`~@#$%^&*_+=|\/><}中括弧を含む他のASCII文字を繰り返し使用すると、繰り返しごとに4ポイントが差し引かれます。 スペース、タブ、および改行を使用すると、使用ごとに1ポイントが差し引かれます。つまり、キャラクターの合計にはカウントされません。 上記以外のキャラクター(エキゾチックキャラクター)を使用すると、1回の使用につき1ポイントが差し引かれます。つまり、キャラクターの合計にはカウントされません。 スコアリングツール: 自動化されたスコアリングウィジェットが作成されていると見ることができるここに。 これはコードボウリングの亜種です。最高得点のプログラムが勝ちます!(の最大スコアがあるため94、最初に到達した人(到達可能な場合)は、受け入れられた回答としてマークされますが、他の人は自由に答え続けることができます)

23
正当化できる最も複雑な「Hello world」プログラム[非公開]
あなたの上司は、「hello world」プログラムを書くように頼みます。コードの行に対して支払いを受けるので、できるだけ複雑にしたいと思います。しかし、無意味な行を追加したり、明らかに役に立たない、または難解なものを追加したりすると、コードレビューでそれを取得することはできません。したがって、課題は次のとおりです。 コード内のすべての複雑さを「正当化」できる条件の下で、できるだけ複雑な「hello world」プログラムを作成します。 プログラムに必要な動作は、「Hello world」という単一の行を出力するだけで(引用符なしで、末尾に改行があります)、正常に終了します。 「正当化」には以下が含まれます。 流行語の互換性(「最新のソフトウェアはオブジェクト指向です!」) 一般的に受け入れられている優れたプログラミング手法(「モデルとビューを分離する必要があることは誰でも知っています」) 保守性(「このようにすれば、後で簡単にXXXを行うことができます」) そしてもちろん、実際のコードに(他の状況で)使用することを想像できるその他の正当化。 明らかに愚かな正当化は受け入れられません。 また、言語の選択を「正当化」する必要があります(したがって、本質的に冗長な言語を選択した場合、「正しい」選択である理由を正当化する必要があります)。UnlambdaやIntercalのような楽しい言語は受け入れられません(それらを使用するための非常に良い正当化を与えることができる場合を除く)。 条件を満たすエントリのスコアは次のように計算されます。 ステートメントごとに1ポイント(または選択した言語でステートメントに相当するもの)。 関数、型、変数などの定義ごとに1ポイント(該当する場合、メイン関数を除く)。 各モジュール使用ステートメント、ファイルインクルードディレクティブ、名前空間使用ステートメントなどに1ポイント。 ソースファイルごとに1ポイント。 必要な前方宣言ごとに1ポイント(コードを再配置することでそれを取り除くことができる場合、選択した配置が「正しい」配置である理由を「正当化」する必要があります)。 制御構造ごとに1ポイント(if、while、forなど) 各行を「正当化」する必要があることに注意してください。 選択した言語が十分に異なり、このスキームを適用できない場合(およびその使用に対して適切な「正当化」を与えることができる場合)、選択した言語に対して上記に最も類似したスコアリング方法を提案してください。 出場者は、エントリーのスコアを計算し、回答に記入するよう求められます。

13
2つの数字を追加する最長コード[終了]
仕事: を使用して、2つの数値をすべて簡単に追加できることを知っています+。あなたの仕事は、2つの入力番号を追加できる最長のコードを作成することです。 ルール: すべてのコードはトピックに含まれている必要があります(長さを追加するために非追加コードを入力しないでください) カウントは文字単位ですが、タブ、スペース、または改行はカウントしません。 過度に長い変数名を使用しないでください これはコードボウリングですので、最も長い答えが勝ちます!

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

5
同じコードの異なる文字
注:このチャレンジでは、コンパイルされた言語での回答のみが許可されます 仕事 タスクは非常に単純で、コンパイル時に同じ出力になる2つの異なるプログラムを作成します。 得点 ここからが楽しみです。スコアは、1つのプログラムに存在する一意のバイト数になります。たとえば、2つのプログラム(IBMコードページ437でエンコードされている)が ☻☻Program A そして ☺Program B 正確に1つのプログラムに含まれる文字は ☻☺AB したがって、スコアは4です。☻最初のプログラムでは2回表示されますが、1回しかカウントされないことに注意してください。 あなたの目標は最高のスコアを取得することです。可能な最高のスコアは256です。 これは、ASCIIエンコードプログラムで機能するスコアリングプログラムです。 規定 両方のプログラムのすべてのバイトを別のバイトに置き換えて、プログラムを別の結果にコンパイルするか、すべて一緒にコンパイルできないようにする必要があります。バイトを削除しても同じことが行われます。 両方のプログラムが同じフラグで実行される限り、コンパイルフラグを使用できます。 結果がマシンごとに異なる場合、実行するマシンが示されている場合、結果のコンパイルは静的でなければなりません(つまり、実行ごとに変化してはなりません)。 コンパイルの出力は、「同等」または「十分に類似」ではない同一のバイトのバイトである必要があります。 コンパイルの出力は空ではないはずです 警告/エラーはコンパイル間で同じである必要はありません プログラムまたはコンパイルのいずれかに印刷できない文字が含まれている場合は、hexdumpを必ず含めてください。技術的には必要ありませんが。

30
数字のリストを並べ替える[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 コードボウリングについて: ゴルフでは、最低スコア(最小のアプリケーション、最もエレガントななど)を取得しようとします。ボウリングでは、最高のスコアを取得しようとします。したがって、コードボーリングチャレンジの目標は、チャレンジの要件を満たしたままで、最大で最もろくでなしの、最も困難なコードを維持することです。ただし、そのためだけにソースを長くする意味はありません。追加された長さは、パディングだけでなく、デザインによるものであるように見える必要があります。 チャレンジ: 数字のリストを昇順でソートするプログラムを作成します。 例: 入力: 1、4、7、2、5 出力: 1、2、4、5、7 コード: WTFがあまりないため、これは明らかに良い答えではありません。 function doSort(array $input) { sort($input); return $input; } ルール: 実際のルールはありません。プログラムが機能する限り、それを手に入れてください! 覚えておいてください:これはゴルフではなくコードボウリングです。目的は、できる限り最悪で最もろくでなしのコードを作成することです!見栄えは良いが、実際には一見邪悪なコードに対するボーナスポイント...

3
1つの簡単なGOTOでプログラムを構築する
あなたの仕事は、プログラム全体(または少なくともその大部分)を完全に再構築しなければならないGOTOを1つだけ使用することができる最大のプログラムを構築することです。スコアは、GOTOなしでコードが再構築されたときに、場所を変更したり、新しく導入された(ステートメントを削除してもスコアに追加されない)コード内のステートメントの数としてカウントされます(他のユーザーは、エレガントなもの)。これはコードボウリングなので、最高得点が勝ちます。 注:この挑戦を試みることによって、ヴェロキラプトル攻撃に対する責任を主張しません。

8
ボウラーズ・ゴルファーズ分数戦争
前書き 0から1までのすべての分数を最小分母、次に最小分子の順に並べることから始めましょう。 1 / 2、1 / 3、2 / 3、1 / 4、3 / 4、1 / 5、2 / 5、3 / 5、4 / 5、1 / 6、5 / 6、1 / 7 ... 重複はカウントされないので、2 / 4、2 / 6、3 / 6、または4/6はリストされていません。すでに簡略化された形式(1 / 2、1 / 3、2 / 3)。 これでタスクは簡単になりnました。コマンドライン引数として正の整数を指定するnと、リストのth分数を標準出力に出力します。したがって、の入力は(0.75ではなく)の5出力を生成する必要があります。3/4 ボウラー あなたの目標は、これを可能な限り長いプログラムで解決することです。スコアは文字数です。 ゴルファー あなたの目標は、既存の答えを取り、それらをゴルフすることです。それらの答えをゴルフするときは、コードから1つ以上の文字を削除し、オプションで残りの文字を並べ替えて、結果のコードが同じ言語で有効なソリューションになるようにします。あなたのスコアはすべての削減の結果です。(つまり、ある回答から10文字、別の回答から15文字を削除すると、スコアは150になります。) ルール 有効なプログラムには、少なくとも3つの固有の文字が必要です。 ASCII文字のみを使用できます。 プログラムのサイズが小さくなると、スコアもそれに応じて小さくなります。 …

3
メタボウリングゴルフ
あなたの仕事は、最もユニークなバイトを持つ別のプログラム(B)を出力する最短のプログラム(A)を作成し、それが元のプログラム(A)を出力することです。基本的に、一対のウロボロスプログラムの半分(定期的な反復クイン)をゴルフし、残りの半分をボウリングしています。AとBは異なる言語である場合があります。 ルールとスコアリング 最終スコアは<number of unique bytes in B> / <number of bytes in A>です。最高スコアが勝ちます。理論上の最大スコアは256であることに注意してください。 プログラムAは少なくとも1バイトの長さが必要です プログラムBを完全に無操作で構成することはできません。つまり、少なくとも1つの文字が何らかの方法で出力に影響を与える必要があります。 カインの標準ルールは両方のプログラムに適用されます。特に、どちらの場合もエラーカインは許可されません。 回答形式の一貫性のために、次のようなものから回答を始めてください。 # <Language for A> & <Language for B>, Score: <B score> / <A score> = <combined score>

4
実用的な数値を計算する
定義 正の整数nは、すべてのより小さい正の整数がの別個の約数の合計として表される場合に限り、実用的な数値(OEISシーケンスA005153)ですn。 たとえば18、実用的な数値です。除数は1、2、3、6、9、18であり、18より小さい他の正の整数は次のように形成できます。 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

11
ひねりを加えたハローワールド
あなたの目標:「Hello、world!」の古典的な結果をもたらすコードを書くこと STDOUTまたは同等のものに出力されます。 ルール:コードは完全に印刷ASCIIでなければなりません。すべてのコードは機能する必要があります-単一のカウント文字を削除すると、結果が変更されるか、コードが機能しなくなる必要があります。すべての変数は、割り当て後に使用する必要があります。出力には文字および文字列リテラルが必要です-つまり、文字リテラルまたは文字列リテラル内の文字を別の文字に置き換えると、結果を変更できる必要があります(エスケープシーケンスの効果ではなく、文字をバックスラッシュに置き換える必要があります)または同等) (注:最終ルールは編集されました) 得点:ここが面白いところです。典型的なコードボウリング規則に従って、文字数によって決定される最高スコアが勝ちます。ただし、文字を繰り返し使用すると、ポイントが減点されます。具体的には... 英数字(az、AZ、0-9)を繰り返し使用すると、繰り返しごとに3ポイント減点されます(最初の使用では減点されません)。 基本的な句読点([!?.-、 ": ';])を繰り返し使用すると、括弧を含めて、繰り返しごとに2ポイントが差し引かれます。 他のASCII文字{`〜@#$%^&* _ + = | \ /> <}を繰り返し使用すると、中括弧を含めて、繰り返しごとに4ポイントが差し引かれます。 スペース、タブ、改行を繰り返し使用すると、繰り返しごとに1ポイント減点されます。つまり、スペース、タブ、または改行の最初の使用のみが合計にカウントされます。 注:コメントは、コメントの開始/終了を示す文字はカウントしますが、合計にはカウントされません。たとえば、C / C ++では、がある場合/* This is a comment */、2つのスラッシュと2つのアスタリスクがカウントされますが、それらの間は何もカウントされません。 いくつかの例(注:サンプル言語としてJuliaを使用)... print("Hello, world!"); 表示可能な文字の合計:22 スペースが含まれています:+1 英数字の繰り返し:llorの場合-12 句読点の繰り返し:-2の場合 " 最終スコア:22 + 1-12-2 = 9 print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as …

11
大文字と小文字の一致検索
3つの入力、テキストの文字列T、置換する文字列、F; そして、それらを置き換える文字列R。Tと同じ(大文字と小文字を区別しない)文字を持つの各部分文字列について、の文字でF置き換えますR。ただし、元のテキストと同じ大文字小文字を使用してください。 より多くの文字が含まれているR場合F、余分な文字は大文字と小文字を区別する必要がありRます。に数字または記号がFある場合、対応する文字はRの大文字小文字を保持する必要がありRます。Fに表示されるとは限りませんT。 すべてのテキストが印刷可能なASCII範囲にあると想定できます。 例 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

14
再配置可能なコードボウリング
コードボウリングチャレンジ ソースコードをどのように再配置しても、同じ出力を生成するプログラムまたは関数を作成します。(出力はエラーにはなりません) パングラムスコアリング スコアは、ソースコード内の一意の文字の量です。 ソースコードAJBを使用し3 たプログラムのスコアは、ソースコードAAJを使用し2 たプログラムのスコアは、ソースコードを使用したプログラム111のスコアは、1 これはコードボウリングの亜種です。最高得点のプログラムが勝ちます! (便宜上、ここに自動スコアリングツールが作成されています) チャレンジルール 入力 プログラム/関数は入力を受け取ることができますが、これは完全にオプションです。 出力 この出力には任意のものを指定できますが、nil、null、null、空、およびエラーではないはずです。(したがって、出力は少なくとも1バイトでなければなりません) 再配置 ソースコードがどのように再配置されても、出力は同じである必要があります。例: プログラム:ABJ出力hello world、プログラムがそうであるように:[ AJB、JAB、JBA、など] これはコードボウリングの亜種です。文字数が最も多いプログラムが勝ちます!

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

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