プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

30
異なる種類のメタ正規表現ゴルフ
通知: 一般的な需要に続いて、規則を少し緩和しました。 最大正規表現サイズは、5回の回答ごとに 1バイト増加します。回答Nは、最大29 +⌈N/5⌉バイトを使用できます。 各回答のスコアは(M /(30 + N / 5))Nになります 正規表現ゴルフでは、2セットの文字列が与えられ、最初のセットのすべての文字列に一致するが、2番目のセットのすべての文字列で失敗する最短の正規表現を作成するように求められます。 それが私たちがやろうとしていることですが、誰かが答えるたびに、正規表現自体が2つの文字列のセットの1つに追加されます(独自の選択)。したがって、この課題に答える厳密な順序があります。 例を見てみましょう: 私はこれから始めますabc(私はそうしません)、そしてマッチセットに入れます。 次に、有効な2番目の答えはになりますa。これは上記に一致するためです(失敗する必要のある文字列はまだありません)。この回答がフェールセットに含まれているとします。 ここで、3番目の答えは一致する必要abcがありますが失敗しaます。したがって、考えられる3番目の答えはですb。これをマッチセットに入れましょう。 第四答えは今一致しているabcとb、しかしに失敗しますa。重複する回答は許可しないため、有効な正規表現はですc|b。 重要なのは、回答をできるだけ短くすることです。これは最初の数回の回答では些細なことかもしれませんが、少数の回答を取得すると、できるだけ少ない文字数で目的の一致を取得することがますます難しくなります。 実際のチャレンジでは、最初は一致セットにが含まれPPCG、失敗セットにはが含まれ[PPCG]ます。最初の回答は既に提供されています。 返事 この課題について理解する重要なことは、一度に答えることができるのは1人だけであり、それぞれの答えはその前のものに依存するということです。 同じもので2つの答えがあってはならないN。2人がN偶然に同時に答えた場合、後で答えた人は(たとえ数秒の差があっても)丁寧に答えを削除する必要があります。 これを少しスムーズに実行するには、回答を投稿する際に次の手順に従うようにしてください。 誰かが前の回答の正しさを独立して検証したことを確認してください(そして対応するコメントを残しました)。 前の回答で見つかった2つのテストセットを取得し、1つのセットのすべての文字列に一致し、もう1つのセットの文字列には一致しない正規表現を記述します。 次の形式で回答を投稿してください。 # N. [regex flavour] - [regex size in bytes] [regex] [link to online regex tester] [notes, explanation, observations, whatever] ### The next answer …

30
予期しない単語を生成する[終了]
目標は、予期せず単語を生成するプログラムを作成することです(プログラムは、単語を生成するようには見えません)。 例(JavaScript): alert(([0][1]+"").slice(4,8)) アラート「罰金」-jsfiddle。 説明: 1. [0][1]アレイにおける一つだけの要素が存在するので戻り、未定義[0] 2.空の文字列の変換の追加undefined文字列には、「未定義」 3 slice(4,8)の8つの文字を出力する第五undefined これは勝手な人気コンテストです。

24
のこぎりのアルファベットを描く
今日はシンプルなもの。高さに正の整数を指定して「のこぎりのアルファベット」を描く最短のプログラムを作成します。プログラミング言語の名前は、それが始まる文字になったら書く必要があります。 たとえば、言語がPythonで、入力が1出力の場合は次のようになります。 ABCDEFGHIJKLMNOPythonQRSTUVWXYZ 入力が2出力の場合: B D F H J L N Python R T V X Z A C E G I K M O Q S U W Y 入力が4出力の場合: D J Python V C E I K O Q U W B F H L N R T …
42 code-golf  string 

15
今日は雨です
状況 バレンタインデーです。彼女はいつも見つかっこの男のために昨日あなたを左にあなたが愛した唯一の「愚かなと面白くありません」。家に帰る途中、あなたは交通渋滞に巻き込まれ、ラジオで古い曲を聴き、フロントガラスに当たる雨があなたを揺さぶっています。あなたの車の中でしばらくして、あなたはあなたの小さなアパートで彼女以外の何かを考えることができない自分自身を見つけます。光がなく、窓から見つめ、暗闇があなたを取り囲んでいます。話をする人はいません。あなたの友人は、あなたの心を悩ませているこの新しい少女についてあなたに警告した後、ずっと前に行ってしまいました。できることはそれだけなので、コンピューターを起動し、ブラウザーを開いて新しいプログラミングパズルをstackexchangeに投稿し、心を変えようとします。 チャレンジ 地面に降る雨をシミュレートして、選択した言語でプログラムを作成します。出力は、ASCII文字または2D / 3Dレンダリングで構成できます。カメラは固定されています。あなたは真上から地面を見ています。プログラムには、新しい「フレーム」を生成するたびにコンソールまたはページを更新するようなアニメーションが含まれている必要があります。それは現実的でなければなりません、それは少し主観的であることを知っていますが、1つの大きなドロップだけですべての地面を埋めることはできないとしましょう。 出力は画像である必要はありませんが、不可解な言語を使用している場合、.gifを提供して実際の動作を示した方が良いでしょう(もちろん、そうでない場合はスコアに影響しません)。 ルール スコアは使用されたバイトの合計です 色を使用する場合は-20ポイント -50何らかの風のレンダリングを達成する場合 最低得点 例 レンダリングされるものの非常に基本的な例: 皆さんがもっとうまくやって、この挑戦​​を楽しんでくれることを願っています。 私の英語で申し訳ありませんが、いくつかのエラーを修正したい場合は私の投稿を編集してください リーダーボード あなたの名前がリストされていない場合、それはあなたの試みがルールに合わないと考えられているためです。 Tobia - APL - 35 j6m8 - Processing.js - 38 The Guy with The Hat - Processing - 42 ace - Processing - 74 kelunik - JS/CSS - 89 Riot - Bash …
42 code-golf 

30
正弦波を印刷(垂直)
端末で垂直にスクロールする連続正弦波を印刷します。プログラムは終了せず、ウェーブを継続的にスクロールする必要があります(何らかの理由で中断されるまでは例外です)。オーバーフローは問題ではないと想定することができます(つまり、カウンターをインクリメントする無限ループ、または無限再帰を使用できます)。 波は次のプロパティを満たしている必要があります。 振幅= 20文字(ピーク振幅) 期間= 60〜65行(含む) 出力は、スペース、改行、 | 出力の各行の後、50msの間一時停止します サンプル出力: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | …

30
追加関数を作成するにはどうすればよいですか?[閉まっている]
問題: 私は大企業の主任開発者で、Skynetを作っています。に割り当てられました 合計を入力して返す関数を作成する ルール: 答えはありません function sum(a,b){ return "their sum"; } 編集:受け入れられた答えは、2014年1月1日に最も賛成票を投じる 注:これはコードトローリングの質問です。質問や回答を真剣に受け取らないでください。詳細はこちら。

30
助けて!!平方根の実行方法![閉まっている]
こんにちは皆さん、私のクラスでは数値の平方根を作成する必要がありますが、うまくいきません!! 挑戦: Write a function or program that will "make a number square root". 注:これはコードトローリングです。プログラミングの成功への道をこの新しいプログラマーに導くために、「有用な」答えを与えてください!クリエイティブに!

30
文字列が回文であるかどうかを判断する最短のコード
回文は、両方の前後に同じように綴られているいくつかの文字列です。たとえば、「エヴァ、洞窟でコウモリを刺すことはできますか?」は回文です(EVACANISTAB | BATSINACAVE) このコードゴルフでは、選択した言語を使用して、特定の文字列が回文であるかどうかを判断します。 エッジケース: 句読点は回文にカウントされません。 制御キャラクターは回文性にカウントされません。 ホワイトスペースは回文性にカウントされません。 数字は回文にカウントされます。 この課題のケースは回文性にカウントされません。 選択する言語によって課されるものを除き、評価する文字列の長さに制限はありません。 この課題では、ASCII文字セットに制限してください。 技術要件: メソッド本体のみが必要です。メソッドの署名、データ構造の宣言などの追加事項は、勝利の要件にはカウントされません。 コードは、コンパイル時エラーまたは例外なしでコンパイルまたは解釈する必要があります。 コードは未処理の例外やクラッシュをスローしてはなりません。(ほぼ言うまでもない。ほぼ。) コードは回文性を示す何らかの値を返さなければなりません。データ型は、使用する言語によって異なります(たとえば、C#ユーザーはを使用するbool場合がありますが、JavaScriptユーザーはを使用できますvar)。 このタスクを「ネイティブ」機能として実行する独自のインタープリターを作成して、ほぼ勝ち取ったスコアを「ゴルフ」することはできません。(言うまでもないことです。) 勝利条件: 文字の最短コードが勝ちです。 現在のリーダー:tmartin(k、25文字) ...によって魔法の緑のチェックマークをしたいあなたの答えは?この男の答えを打ち負かす!

6
ASCII迷路レンダリング3000
私はタイピングが好きではないので、迷路を非常に単純な形式で描きます。 # ##### # # # ### # # # # # # # # ##### # 迷路じゃないですか?もちろん、すべての迷路は3dに見えるはずですが、このチャレンジと同じではありませんが、最大の迷路の大きさのため、私は(しぶしぶ)手動で迷路を次のように更新しました。 +-----+ +-----------------------------+ |\ \ |\ \ + \ \ + \ \ \ \ \ \ +-----------------------+ \ \ \ \ \| |\ \ \ \ \ +-----------------------+ \ \ \ \ …

30
ケースの変更
今日の課題では、文字列の大文字と小文字を交互に切り替えるプログラムまたは関数を作成する必要があります。ただし、アルファベット以外の文字は無視する必要があります。これは、すべてのアルファベット文字の大文字と小文字が前後のアルファベット文字と異なる必要があることを意味します。これは、たとえば他のすべての文字を大文字にするよりも少し複雑です。次のような文字列を取る場合 hello world そして、他のすべての文字を大文字に変換すると、次のようになります: hElLo wOrLd ご覧のとおり、小文字のo後に小文字が続きwます。これは無効です。代わりに、スペースを無視して、次の結果を得る必要があります。 hElLo WoRlD アルファベット以外の文字はすべて同じにしておく必要があります。一貫して交互に出力される限り、出力は大文字でも小文字でも開始できます。これは、以下も許容可能な出力であることを意味します。 HeLlO wOrLd プログラムは、入力の大文字と小文字に関係なく動作するはずです。 入力文字列には印刷可能なASCIIのみが含まれるため、印刷できない文字、改行、またはUnicodeを心配する必要はありません。あなたの提出物は、完全なプログラムまたは機能のいずれかであることができます、そして、あなたはどんな合理的な形式ででも入力と出力をするかもしれません。たとえば、関数の引数/戻り値、STDIN / STDOUT、ファイルの読み取り/書き込みなど。 例: ASCII -> AsCiI 42 -> 42 #include <iostream> -> #InClUdE <iOsTrEaM> LEAVE_my_symbols#!#&^%_ALONE!!! -> lEaVe_My_SyMbOlS#!#&^%_aLoNe!!! PPCG Rocks!!! For realz. -> PpCg RoCkS!!! fOr ReAlZ. This example will start with lowercase -> tHiS eXaMpLe WiLl …
42 code-golf  string 

5
ブロックビルディングボットの群れ!
コンテストは終了しました! イントロ これはインタラクティブなキングオブザヒルコンテストで、コントローラーは質問の下部にあるスタックスニペットに完全に含まれています。コントローラーは自動的に答えを読み取り、ゲームを通してプレイします。誰でもブラウザでいつでも実行できます。 このコンテストの仕組みは、レッドvsブルーピクセルチームバトルボットと非常によく似ています。プレイされているゲームを除き、グリッドベースではありますが、まったく異なります。各ゲームは1対1であり、チームはありません。各エントリーはそれ自体のために戦っていて、最終チャンピオンになるのは1人だけです。 コントローラーはJavaScriptを使用し、JavaScriptはほとんどのブラウザーがサポートする唯一のクライアント側スクリプト言語であるため、すべての回答もJavaScriptで記述する必要があります。 この仕様では、イタリック体のテキストは、ゲームのメカニックまたはプロパティの正式な用語を示すために使用されます。これらの用語は、ゲームのさまざまな部分を一貫性のある明確な方法で参照するために使用されます。 ゲームプレイ 基礎 この質問に対するすべての答えは、プレーヤーを表しています。ゲームは 2人のプレーヤー、間の競争であるP1およびP2。各プレイヤーは、0〜7の番号が付けられた8つのボットの群れを制御します。ゲームは、グリッド、下8列が壁(「ブロック」)から始まる128×64 セルアリーナ、その他の列が空気として開始します。グリッド境界の外側のセルは空気と見なされます。 グリッドのx座標の範囲は左の0から右の127までで、yの範囲は上が0から下が63までです。 サンプル開始グリッド: ボットは常にグリッドセルに揃えられたままで、複数のボットが同じセルを占有する場合があります。ボットはエアセルのみを占有できます。P1のボットは常に、壁の上の列の一番左の行0-7で始まり、P2のボットは常に右の行7-0で始まります。 ボットまたはセルの隣は、それと直接直交し対角にある8つのセルです。 ボットの視野(FOV)は、ボットを中心とした13×13セルの正方形です。セルまたは敵のボットは、少なくとも1つのボットのFOVにある場合、プレーヤーのFOVにあると言われます。 移動とアクション ゲーム中、各プレイヤーは1000回移動できます。P1が最初に移動し、次にP2、次にP1のように移動して、合計2000回移動し、ゲームが終了します。 移動中、各プレイヤーはゲームの状態、FOV内のグリッドセルおよび敵ボットに関する情報を受け取り、それを使用して各ボットが実行するアクションを決定します。 デフォルトのアクションはdo nothingです。この場合、ボットは移動したり、グリッドと対話したりしません。 他のアクションは、move、grab、およびplaceです。 次の場合、ボットは隣接するセルCのいずれかに移動できます。 Cは範囲外ではありません。 Cは空気(壁ではない)、 そして、Cの少なくとも1つの隣人は壁です。 成功すると、ボットはCに移動します。 次の場合、ボットは隣接セルCの1つを取得できます。 Cは範囲外ではありません。 Cは壁、 ボットはまだ壁を運んでいません。 成功すると、Cは空中になり、ボットは壁を運びます。 ボットはでき置くその隣接セルCの場合のいずれかに: Cは範囲外ではありません。 Cは空気、 どちらのプレイヤーのボットもCを占有しません。 ボットは壁を運んでいます。 成功すると、Cは壁になり、ボットはもはや壁を運ばなくなります。 アクションが失敗すると、何も行われません。 少なくとも1つの壁を運ぶボットが占有しているセルには、壁の色が付いた小さな正方形が描かれています。ボットは壁なしで始まります。 記憶 移動中、プレイヤーはメモリにアクセスして変更することができます。これは、最初から空の文字列であり、ゲーム全体にわたって持続し、戦略データの保存に使用できます。 ゴール 黄色の十字線のセルは目標で、ランダムな位置から始まります。各プレイヤーのスコアは0から始まります。プレイヤーのボットがゴールに移動すると、そのプレイヤーのスコアは1増加し、次のターンの前にゴールがランダムに再配置されます。ゲーム終了時に最高スコアのプレイヤーが勝ちます。スコアが等しい場合、同点です。 移動中に複数のボットがゴールに移動した場合、プレーヤーはまだ1ポイントしか獲得できません。 目標が500の移動で同じ場所にあった場合、ランダムに再配置されます。目標がランダムに配置される場合は常に、ボットが占有しているセルに配置されないことが保証されています。 プログラムするもの この関数の本文を作成します。 function myMove(p1, …

9
コンパイラの警告とエラーを最も多く生成する最短のプログラムを作成する
挑戦: コンパイル時に、コンパイラの警告とエラーを最も多く生成する非常に短いプログラムを作成します。任意のプログラミング言語で作成できます。 得点: スコアは次の方程式によって決定されますerrors_and_warnings_length/code_length。最高スコアが勝ちます。 例: C#プログラムのclass長さは5文字で、3つの警告を生成します。これは、スコア(1/5)* 3 = 0.6です。 編集: 多少の混乱のため、プログラムは少なくとも1文字の長さが必要です。それ以外の場合は、無限のスコアを取得します。

30
フランスのナンバープレート
サンドボックス フランスのナンバープレート フランスのナンバープレートは、数字と文字の特定のパターンに従って、順番に並んでいます。AB-012-CD チャレンジ 特定の番号について、対応するフランスのナンバープレート番号を出力するプログラムまたは関数を作成します。プログラムは、リンクされたページで指定されているような特別なケースを処理しないでください。26*26*1000*26*26 => 456 976 000可能な限り完全なプレートを生成できるか、言語がサポートできる範囲である必要があります。 番号付けシステムは次のとおりです。 AA-000-AAからAA-999-AA(数字が最初に進化); AA-000-ABからAA-999-AZ(その後、右の最後の文字); AA-000-BAからAA-999-ZZ(右の最初の文字); AB-000-AAからAZ-999-ZZ(左の最後の文字); BA-000-AAからZZ-999-ZZ(左の最初の文字)。 入力 整数としてのプレート番号のインデックス 出力 対応するフランスのナンバープレート番号 追加情報 文字は大文字でなければなりません 0ベースと1ベースの両方のインデックスを使用してプレートを生成できます(AA-000-AAは、0または1に対応できます。他のすべてのテストケースが同じインデックスを使用すると仮定します。 これはcode-golfであり、すべての言語の最短回答が勝ちです! テストケース(0ベースのインデックス付け) 0 -> AA-000-AA 1 -> AA-001-AA 999 -> AA-999-AA 1000 -> AA-000-AB 675 999 -> AA-999-ZZ 676 000 -> AB-000-AA 456 975 999 -> ZZ-999-ZZ

17
各文字を含む最初の番号
入力としてAからZまでの1文字(JおよびKを除く)が与えられた場合、その文字が書かれた形で含まれている負でない最小の整数を出力します。数字に「and」という単語が含まれることはないと想定します。したがって、「101100」は「100」ではありません。アメリカ(短期)のカウントを想定して、100万が10^610億であると仮定し10^9ます。 a 1000 one thousand b 1000000000 one billion c 1000000000000000000000000000 one octillion d 100 one hundred e 0 zero f 4 four g 8 eight h 3 three i 5 five j k l 11 eleven m 1000000 one million n 1 one o 0 zero p 1000000000000000000000000 one …

28
マーキーサイン文字
毎日、移動可能な文字でマーキーサインに新しい単語を追加し、必要な文字だけを購入します。可能な限り、以前の単語用に購入した文字を再利用します。毎日書きたい単語を順番に指定して、毎日購入する文字を出力します。 例 Input: ['ONE', 'TWO', 'THREE', 'SEVENTEEN'] Output: ['ENO', 'TW', 'EHR', 'EENSV'] 1日目:あなたはなし文字で始まるが、その書き込みにONE、あなたはそのすべての文字を買いますE、N、O。 2日目:翌日、あなたは我慢したいTWO (降ろすONE)。あなたはすでにOfromを持っているONEので、追加を購入しますTW。 3日目:この時点で、あなたは持っていENOWTます。書くには THREE、あなたが必要EHRです。Eあなたが持っているものに加えて秒を購入する必要があることに注意してください。 4日目:を書くにはSEVENTEEN、Eすでに2つ(3つではない!)ある4 の合計が必要な ので、さらに2つ購入します。にもとのT1つがあるNので、残りの文字を購入します EENSV。 この例ではアルファベット順に文字を出力しましたが、任意の順序で出力できます。 入力:文字の空でない文字列の空でないリストA-Z。必要に応じて小文字を使用できます。文字列には文字のリストが適しています。 出力:毎日購入する必要がある追加の手紙を出力または印刷します。1日の文字は任意の順序で出力できますが、日は正しい順序でなければなりません。 毎日の文字は他の日と区別する必要がありますので、一日の終わりを知ることができます。1日以内または数日間の両方で、末尾および/または先頭の区切り文字は問題ありません。1日には購入した文字がなく、出力に反映される必要があることに注意してください(最終日であっても、スペースまたは空の行は問題ありません)。 テストケース ['ONE', 'TWO', 'THREE', 'SEVENTEEN'] ['ENO', 'TW', 'EHR', 'EENSV'] ['ONE', 'TWO', 'ONE', 'THREE'] ['ENO', 'TW', '', 'EHR'] ['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC'] ['ABC', 'A', 'B', …
41 code-golf  string 

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