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

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

1
低解像度ピクセルアートの死(または、その死を描く)
これは不規則なWebコミックです!テーマタスク* 死はかなり大規模な組織化であり、Head Deathは従業員を区別するのに問題はありませんでしたが、組織化に関連する特定の他のエンティティはそれらすべてを追跡するのに苦労していました。 したがって、ここでのタスクは、さまざまなデスのタイトルを指定して、そのデスの対応する32x32ピクセルの画像を生成することです。 さらに、Head Deathはむしろ官僚的で(そして少しケチな)ため、(数回のボーナスを考慮に入れた後の)最短のプログラムが公式に使用するために選択されます。 入力は大文字と小文字を区別しない必要があります。また、接頭辞はDeath Of、Death ByとThe Death Of同等に扱われるべきです。 出力画像は、ファイルに保存するか(ロスレスビットマップ画像形式で)、画面に表示できます。 使用する正確な RGB値は次のとおりです。 White 255 255 255 Black 0 0 0 Dark Gray 125 125 125 Bone Gray 170 170 170 Purple 60 0 140 Brown 120 40 0 Blue 0 80 200 Green 0 100 0 Neon Green …

10
ブラケットバランス
括弧([{()}])およびその他の文字(A- Z、a- z、0- 9、句読点)を含む(おそらく空の)文字列が与えられます。次のルールに準拠しているかどうかを確認する必要があります。 括弧以外の文字は無視されます。 すべての開いたブラケット[{(には閉じブラケットがあり)}]ます。だから、[](許可されていません。 ブラケットは適切にネストされています。[(])許可されていません。 中括弧に角括弧を含めることはできません。単純な括弧には、中括弧または角括弧を含めることはできません。ですから[({})]、[{[]}]および({})許可されていません。ブラケットは同様のブラケットでネストできるため、使用[[{((()))}{{(())}}]()]{()}できます。 出力は、選択に応じた単一の真実/偽の値です。 最短のコードが優先されます。 テストケース b[[a{(/)}(())+={{}-}],] ->有効 ([h][e][l][l][o]) ->無効 [///[{(\/(arg()))}1{{((-)-2)}}]()]{()} ->有効 hi ->有効

2
90°自動回転プログラム
前書き ASCII文字の長方形ブロックを時計回りに90度回転する完全なプログラムを作成します。プログラム自体が時計回りに90度回転すると、ASCII文字のブロックが反時計回りに90度回転します。 ルール 多くの場合、行列を回転または転置する組み込み関数を使用しません。たとえば、MATLAB / Octave rot90および転置演算子'では許可されていません。 STDINとSTDOUTまたはそれに最も近いものを使用する完全なプログラムを作成する必要があります。 プログラムは長方形でなければならず、入力も長方形であると仮定する必要があります。 入力と出力は改行で区切られた文字列であり、末尾の改行はありません。 ソースコードを入力として実行する場合、プログラムは時計回りに90度回転する必要があります。出力は、入力を反時計回りに90度回転させる同じ言語の2番目のプログラムでなければなりません。回転したプログラムに入力としてソースコードが与えられると、元のプログラムのソースコードが出力されます。 注:両方のプログラムは、独自のソースコードだけでなく、あらゆる入力に対して機能する必要があるため、1文字のクインは許可されません。 例 次の例は、仮想言語ExampleLangで入力を90度回転させる有効なプログラムです。 ^f a2% 3 lk (^_^& v D8 $4 / 自分自身を入力として実行すると、入力を反時計回りに回転させる別の有効なプログラムを出力します。 D l^ 8 kf $ (a 4 ^2 _% ^ /v&3 この2番目のプログラムは、入力として自分自身に与えられると、元のプログラムを出力します。空白行には4つのスペースが必要であり、2行目から最後の行にマークダウンでレンダリングできない後続スペースがあることに注意してください。明確にするために: $ examplelang program < program > rotProg $ examplelang rotProg < rotProg > program1 …

9
ハッピーフィボナッチデー!
バックグラウンド 今日(または昨日)は11/23またはフィボナッチ日です(または以前でした)。フィボナッチケーキを作るよりも祝うのに良い方法はありますか? 例 3 ii i_i_ii_i_i 8 ii ii ii ii ii ii ii ii i ii i i ii i i ii i i ii i i ii i i i ii i i i i ii i i i i ii i i i i i ii i …

17
すべての可能なベース表現の合計を見つける
このチャレンジの目的は、2〜36のできるだけ多くの基数の文字と数字のみを含むと想定できる入力文字列を変換するプログラムを作成し、結果の基数10の合計を見つけることです。 入力文字列は、最大36:までのベースの標準アルファベットに従って番号が定義されるすべてのベースに変換されます0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ。たとえば、入力2Tはベース30以上でのみ有効です。プログラムは、2Tを30から36のベースから10進数に変換し、結果を合計します。 入力文字列には文字と数字のみが含まれていると想定できます。プログラムでは大文字または小文字を使用できます。両方をサポートできますが、必ずしもサポートする必要はありません。 テストケース サンプル入力: 2T 可能なベースのチャート Base Value 30 89 31 91 32 93 33 95 34 97 35 99 36 101 出力:665 サンプル入力: 1012 可能なベースのチャート: Base Value 3 32 4 70 5 132 6 224 7 352 8 522 9 740 10 1012 11 1344 12 1742 13 …

12
接続n時間!
https://en.wikipedia.org/wiki/Connect_Four 2プレイヤーゲーム接続4を覚えている人はいますか?そうでない人にとっては、表面に垂直に立っている6x7のボードでした。接続4の目標は、接続4です!接続は、水平、斜め、または垂直の場合にカウントされます。ピースをボードの上部に置くには、ピースをその列の一番下に落ちるようにボードの上部に置きます。ルールは、コネクト4で3つのことを変更します。 変更#1の勝ちは、最も多くのポイントを持つプレーヤーとして定義されます。ルールのように4をつなげることでポイントを獲得します-それについては後で詳しく説明します。 変更#2各ラウンドに3人のプレイヤーがいます。 変更#3ボードサイズは9x9です。 得点: スコアは、連続して取得する数に基づいています。行グループに4がある場合、1ポイントを獲得します。行グループに5がある場合、2ポイント、行3に6などが続きます。 例: 注意oとx置き換えられます#し、~より良好なコントラストのために、それぞれ 空のボードの例:(すべての例は2プレーヤーの標準サイズのボードです) a b c d e f g 6 | | | | | | | | 5 | | | | | | | | 4 | | | | | | | | 3 | | | | | …

6
文字列からASCIIアートテキスト
タスク ASCIIアートを生成するために、このWebサイトから見たASCIIアートテキストを作成する必要があります。 ルール 入力はアルファベットのテキストとスペースのみで、単一行として入力されます。また、大文字と小文字は区別されません。 出力テキストが端末の幅より長い場合、修正する必要はありません。ターミナルウィンドウが無限に伸縮可能であれば、それが正しい限り、大丈夫です。 別に標準抜け穴から、他の唯一のルールはビルトインを使用mayn'tということです-あなたの言語があればにもかかわらずた(されるであろう。このために建てられた素晴らしい)あなたがサイドノートとしてそれを含める場合は、お使いの答え、あなたのコードゴルフソリューションの15%のボーナスを取りなさい! 例: 入力: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 出力: _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _______ _____ _______ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ …

5
コンビネーションロックカウンター
シーンは次のとおりです。 ブライアンが突然吸入器を切に必要としているとき、ピーターは彼の相棒ブライアンとジムにいます。ブライアンは、床に倒れる前にピーターにコンビネーションロックのコードを伝えることができました。 ピーターがブライアンのロッカーに着き、インジケーターが何を指しているのかを見た瞬間、スチューイーは彼を待ち伏せし、彼の顔にコショウのスプレーをいっぱいスプレーして、ピーターを盲目にします。 ピーターは、見ないでロックを開こうとする必要があります。彼はダイヤルを右に回し始め、数字を渡しながらカウントします。その後、彼は正しい番号でダイヤルを左に回し始めますが、カウントを続け、最後にロックが開くまで右に回します。 チャレンジ: ブライアンからの組み合わせとインジケーターの位置の2つの入力を受け取る関数/プログラムを作成します。Peterがカウントしなければならない数字を出力します。 ルール: 組み合わせとインジケータの位置は別々の引数である必要があります。 入力は、コマンドプロンプトから、または関数の引数として行うことができます。 出力は画面に印刷する必要があります/そうでなければ表示されます(ファイルではなく) 開始位置は最初の数字と同じではなく、組み合わせの3つの数字はすべて一意であると仮定します これは、下の図に示されているロックで、可能な番号は0〜39です。 手順: 以下のロックを開くには、一連の指示に従う必要があります。 コードを知っている必要があります。今のところ(38、16、22)と仮定します。 ダイヤルを3回右に回し(開始番号を3回渡します)、最初の番号(38)がインジケーターと一致したら停止します ダイヤルを左に1回転させて最初の数字を渡し、2番目の数字(16)がインジケーターと一致したら停止します。 ダイヤルを右に回し、3番目の数字(22)がインジケーターと一致したら停止します ロックを引き下げる 例: Input 38 16 22 33 Output 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 …
20 code-golf  number 

2
トランジスタの組み合わせ
ビデオゲームのトランジスターは非常に興味深い能力システムを備えています。16の異なるスロットで使用できる16の「機能」を収集します。おもしろいのは、3種類のスロットがあり、どのスロットで使用するかによってすべての関数の動作が異なることです。 4つのパッシブスロットがあります。 4つのアクティブスロットがあります。 各アクティブスロットには2つのアップグレードスロットがあります。 私たちが提供するスキルセットの数を把握したいと思います。 ただし、一部の組み合わせは同等です。特に、スロットのこれらの各グループ内では、関数の特定の位置は重要ではありません。一方、アップグレードスロットで機能の効果はない親アクティブスロットで使用される特定の機能に依存します。 したがって、16進数を使用して関数を表す場合、次の組み合わせはすべて同等です。 Passive Slots: 0 1 2 3 Active Slots: 4 5 6 7 Upgrade Slots: 8 9 A B C D E F Passive Slots: 2 0 1 3 # Permutation of passive slots. Active Slots: 4 5 6 7 Upgrade Slots: 8 9 …

13
誰もお願いしません!
私は絶対に数字が嫌いです 1です。ですから、数字を「適切な形式」に変換するためにあなたの助けが必要です。 適切な形式の数値に2つ1のsが連続することはありません。101大丈夫ですが、110、恐ろしいです。 変換するには、不適切な数値をすべてスキップして、通常どおりカウントします。例えば... 1 -> 1 2 -> 2 ... 10 -> 10 11 -> 12 12 -> 13 ... 108 -> 109 109 -> 120 110 -> 121 111 -> 122 等々。 プログラムは整数を取り、適切な形式で出力する必要があります。これはcode-golfであるため、バイト単位の最短コードが優先されます。
20 code-golf  number 

1
画像迷路の生成
チャレンジ 「画像」を受け入れ、その画像から形成された画像迷路を出力するプログラム/関数を作成します。 入力 プログラムは2つの引数を受け入れる必要があります。 私、迷路を形成するイメージ S、迷路の解を表示するかどうかを指定するブール値 私は次の形式で与えられます: ....... .#####. .#####. ####### .#####. .#####. ....... ここ#で、はソリューションパスに含まれるセルで、.はセルが除外されるセルです。異なる場合は、.「」、#「」、および改行を任意の文字と交換できます。または、入力画像の実際のビットマップを受け入れることもできます。 出力 結果として生じる迷路は次の形式になります。 ############### # # # ### ####### # # #.........# # # #.#######.# # # #.#.......# # ###.#.######### ....#.#........ #####.#.####### # ...#..... # # #.#######.# # # #.........# # # ####### ### # # …

1
telgif:逆フィグレット
figletは、バナーなどで使用するためにプレーンテキストをASCIIアート表現に変換するユーティリティです。例えば: $ figlet "CODE GOLF" ____ ___ ____ _____ ____ ___ _ _____ / ___/ _ \| _ \| ____| / ___|/ _ \| | | ___| | | | | | | | | | _| | | _| | | | | | |_ | |__| |_| | …

8
お元気ですか?
Martinは、チャレンジに対する回答のスコアを追跡するために使用できる素敵なスニペットを作成しました。それはすばらしいことですが、自分で追跡できるといいのではないでしょうか? それ自体のバイト数をこの質問に対する残りの回答と比較し、「I'm answer number n」を返すプログラムを作成します。 ルール: あなた自身の答えのバイト数はコードにハードコーディングできます この関数は、URLを入力として使用することも、ハードコーディングすることもできます。urlの文字はバイトカウントにカウントされないため、url-shortenerを使用する必要はありません。 回答へのURLアドレスはハードコーディングできません 回答のスコアはヘッダーから見つけることができます(Martinのスニペットが行うのと同じ方法)。 回答ヘッダーは正しい形式である必要があります(以下で説明します)。 プログラムをオンラインで実行できる場合は、オンラインコンパイラ(または回答から実行できるコードスニペット)へのリンクを共有してください。それが不可能な場合は、関数の呼び出し方法を示し、独自のコンパイラからの出力を表示してください(回答を投稿した時点。もちろん、必要でない限り、更新する必要はありません)。 実際に答えをこの質問の他の答えと比較する必要があります。I'm answer number 1.ある言語でスクリプトを書くだけでは合法ではありません。 他の回答のバイト数が自分のものと同じである場合は、それらの中で最高かそれより悪いかを選択できます。 ヘッダーはフォーマットする必要があります。 # Language Name, N bytes 取り消し線などは使用できないため、コードサイズを変更する場合は、ヘッダーの下に太字で表示するか、他の方法で示します。 出力はである必要がありますI'm answer number n.。番号nは位置です(末尾の改行/スペースは問題ありません)。したがって、最短の答えは「私は答え番号1です」、2番目は「私は答え番号2です」を出力します。等 これはコードゴルフであるため、バイト単位の最短回答が勝ちます。

17
バイナリを簡素化
チャレンジ 任意の手段を介した入力として2進数が与えられた場合、完全なプログラムまたは関数を使用して数値を「単純化」します。 入力 [binary] binary 0を超える2進数の数値です。 出力 入力を取得し、ビルトインを使用せずに基数10に変換し、その数値に1と0のみが含まれている場合は、別の2進数であるかのように基数10に変換します。番号をバイナリで読み取ることができなくなるまでプロセスを繰り返し、その番号を出力します。 その他の情報 入力が1の場合、単にoutput 1です。プログラムを無限に単純化してはいけません1。 これはコードゴルフであるため、火曜日(11月17日)までのバイト単位の最短回答が勝ちです。 混乱を招くものがある場合は、解決する必要があるものを指定してコメントを残し、それに応じて編集します。 基本変換の組み込みは許可されていません。 例 Input | Output 1 | 1 1010 | 2 1011 | 3 1100100 | 4 1100101 | 5 1111110011 | 3

17
数字と演算子のリストとしての計算機
あなたの仕事は、整数または演算子のいずれかの引数のリストを取得し、次のように解析することです。 +で始まる現在の演算子があります。 演算子が見つかるたびに、現在の演算子がそれに変わります。 可能な演算子は、「+」、「-」、「*」、「/」、および「%」で、Cおよびほとんどの言語での意味に対応しています。 0から始まる実行中のソリューションが保持されます。 整数が見つかるたびに、演算子に応じた数値で解が修正されます。たとえば、演算子が「/」の場合、解は数値で除算されます。 演算の結果が混合数(つまり、小数)になる場合は、整数に切り戻す必要があります(つまり、小数を切り捨てる必要があります)。 最終的なソリューションを出力します。 例えば: 引数の5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14結果は次のとおりです。 5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14 0 5 13 38 342 2052 4104 4000 1000 …
20 code-golf  number 

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