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

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

5
2つのリストの平均化
2つのリストを平均化する チャレンジ 正の整数の2つのリストが与えられた場合、新しいリストが同じ算術平均(平均)を持つように要素を2つの新しいリストに再配置できるかどうかを判断します。 入力 入力は、STDINを介して、または関数の引数として取得できます。入力はリストとして取得できます。または、言語がリスト(または配列/辞書などの類似物)をサポートしていない場合、入力はコンマまたはスペース区切りの文字列として取得できます。あれは、 "1 4 8 2 5,3 1 5 2 5" 次と同じです: [ [1,4,8,2,5], [3,1,5,2,5] ] すべての入力リストは同じ長さになります。 出力 同じ平均で2つの新しいリストを作成できる場合、プログラム/関数は平均を出力するか返す必要があります。できない場合、プログラムは悲しい顔を出力するはず:(です。 等しい手段を使用して再配置されたリストは、存在する場合、同じ長さである必要はありません。新しいリストを作成するために、任意の数のスワップを作成できます。 例 1 4 8 2 5,3 1 5 2 5 -> 1 4 8 2 3,5 1 5 2 5 (swapped 3 and 5) -> 3.6 1 …

15
番号の配布
この課題では、ここで説明するように、数値の和と差にまたがって製品を配布することを使用します。 例 Input | Output -------------|------------- 23(12+42) | (23*12)+(23*42) 9(62-5) | (9*62)-(9*5) 4(17+8-14) | (4*17)+(4*8)-(4*14) 15(-5) | -(15*5) 2(3) | (2*3) 8(+18) | +(8*18) 8(-40+18) | -(8*40)+(8*18) 仕様 入力はn(_)、単一の正の符号なし整数のn後に括弧で囲まれた式が続く形式の文字列になります_。この式_は、+and -記号で区切られた1つ以上の正の整数項の合計と差で構成されます。最初の用語の前には、+記号、-記号、または記号なしを付けることができます。 出力では、n各項を乗算するために初期番号を配布する必要があります。の各項は、括弧で囲まれた式を生成するためにa左乗算さnれる(n*a)必要があり、これらの新しい用語は、元の用語とまったく同じ方法で結合され+、-符号が必要です。 無効な入力 これらは、処理する必要のない入力の例です。 3(5 plus 3) 6(5 13) (5+8)(6+6) (5+3)8 勝ち これはcode-golfなので、バイト単位の最短コードが優先されます。

5
CipherSaber暗号化
以下に説明するように、CipherSaber暗号化プログラムを実装します。ガイドライン: バイト単位の最小のエントリが優先されます。 ただし、コードゴルフの標準からの逸脱では、たとえ重要なゴルフエントリでなくても、興味深いエントリを投稿することを歓迎します。 通常、エントリは、標準入力からプレーンテキストを取得し、暗号テキストを標準出力に書き込み、ユーザーが指定した方法でキーを(ユーザーが)指定するプログラムです。 ただし、これをプロシージャとして実装する場合は、それでも問題ありません。 IVは、暗号で保護された擬似乱数ジェネレータから取得する必要があります。お使いの言語がそれをサポートしていない場合は、別の言語を選択してください。;-) 暗号固有のライブラリ、システムコール、または命令(上記で規定されているPRNG以外)は使用しないでください。もちろん、一般的な低レベルのビット単位操作は大丈夫です。 CipherSaberはRC4 / Arcfourの変形なので、後者について説明することから始め、CipherSaberがそれに対して行う変更について説明します。 0. RC4 / Arcfour Arcfourは他の場所で完全に指定されていますが、完全を期すためにここで説明します。(インターネットドラフトとこの説明の間に矛盾がある場合、前者は規範的です。) キー設定 2つの配列、Sおよびをセットアップします。S2両方とも長さ256です。ここk_1で、はキーの最初のバイトでk_n、最後はバイトです。 S = [0, ..., 255] S2 = [k_1, ..., k_n, k_1, ...] (S2すべての256バイトがいっぱいになるまで、キーのバイトが何度も書き込まれます。) 次に、j0 に初期化し、256回シャッフルします。 j = 0 for i in (0 .. 255) j = (j + S[i] + S2[i]) mod 256 …

16
プライムパワー分解からの除数の合計
タスクは、その素因数分解を与えられた数の除数の合計を計算することです。 入力 長さnの 2つの配列(または同等のもの)。1つは素因数を含み、もう1つは対応する指数を含みます。 出力 すべての除数の合計(数値自体を含む)。 例 数値240には、それぞれの指数が4、1、および1である素因数として2、3、および5があります。予想される出力は744になります。 Input: [2,3,5] [4,1,1] Output: 744 得点 バイト単位の最短コードが勝ちです! ソリューションの実行時の複雑さがO(指数の積)ではなくO(指数の合計)である場合、スコアに0.8を掛けることができます。 あった同様の質問ここに掲載が、それは挑戦ではなかったです。この問題はゴルフをするのに十分面白いと思います。 今週の勝者は選ばれます
11 code-golf  math  primes 

5
最短最長共通サブシーケンスコード
SLCSC問題を解決するためのタスク。これは、最長共通部分列問題を解決するための最短のコードを見つけることです。 二つ以上の文字列のLCSの問題に対する有効な解S 1、... S nは任意の文字列であるTの文字というように最大長のTが全てに現れるS Iと同じ順序で、T。 TはS iの部分文字列である必要はないことに注意してください。 例 文字列axbyczとにxaybzcは、長さ3の8つの共通サブシーケンスがあり ます。 abc abz ayc ayz xbc xbz xyc xyz これらはいずれも、LCS問題の有効な解決策です。 詳細 上記で説明したように、次の規則に従って、LCS問題を解決するプログラムまたは関数を作成します。 入力は、小文字のみを含む2つ以上の文字列で構成されます。 これらの文字列は、文字列の配列または選択した区切り文字を持つ単一の文字列として読み取ることができます。 コードは、問題に対する可能な解決策のいずれか1つを出力する必要があります。オプションで、ラインフィードが続くか、引用符で囲まれます。 文字列が1000文字よりも短く、最大20個の文字列があると想定できます。 これらの制限内で、コードは理論的には期待どおりに動作するはずです(無制限の時間とメモリが与えられます)。 あなたのコードは、私のマシン(Intel Core i7-3770、16 GiB RAM)で1時間以内に次のセクションの結合テストケースを完了する必要があります。 考えられるすべてのサブシーケンスを単純に繰り返すアプローチは、時間制限に準拠しません。 など、このタスクを単純化する組み込みの使用LongestCommonSequenceは許可されていません。 標準のコードゴルフ規則が適用されます。 テストケース a ab 出力: a aaaaxbbbb bbbbxcccc ccccxaaaa 出力: x hxbecqibzpyqhosszypghkdddykjfjcajnwfmtfhqcpavqrtoipocijrmqpgzoufkjkyurczxuhkcpehbhpsuieqgjcepuhbpronmlrcgvipvibhuyqndbjbrrzpqbdegmqgjliclcgahxoouqxqpujsyfwbdthteidvigudsuoznykkzskspjufgkhaxorbrdvgodlb qnnprxqpnafnhekcxljyysobbpyhynvolgtrntqtjpxpchqwgtkpxxvmwwcohxplsailheuzhkbtayvmxnttycdkbdvryjkfhshulptkuarqwuidrnjsydftsyhuueebnrjvkfvhqmyrclehcwethsqzcyfvyohzskvgttggndmdvdgollryqoswviqurrqhiqrqtyrl 出力:hxbbpyhogntqppcqgkxchpsieuhbncvpuqndbjqmclchqyfttdvgoysuhrrlまたは同じ長さの他の一般的なサブシーケンス riikscwpvsbxrvkpymvbbpmwclizxlhihiubycxmxwviuajdzoonjpkgiuiulbjdpkztsqznhbjhymwzkutmkkkhirryabricvhb jnrzutfnbqhbaueicsvltalvqoorafnadevojjcsnlftoskhntashydksoheydbeuwlswdzivxnvcrxbgxmquvdnfairsppodznm …

17
三角平方数
平方数とはn^2、nが整数の形式を取るものです。これらは完全平方とも呼ばれます。平方根を取得すると整数が得られるためです。 最初の10個の平方数は次のとおりです:(OEIS) 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 三角形の番号は、正三角形を形成できる番号です。n番目の三角形の数は、1からnまでのすべての自然数の合計に等しくなります。 最初の10個の三角形の数値は次のとおりです:(OEIS) 0, 1, 3, 6, 10, 15, 21, 28, 36, 45 正方形の三角形の番号は、正方形と三角形の両方の番号です。 最初の10個の正三角形の数は次のとおりです:(OEIS) 0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796 無限数の平方数、三角形の数、および正方形の三角形の数があります。 入力(パラメーターまたはstdin)番号を指定してプログラムまたは名前付き関数を作成しn、nth正方三角番号を計算して出力/返します(nは正の非ゼロ数)。(n = 1の場合は0を返します) プログラム/関数が有効な提出であるためには、少なくとも2 ^ 31-1より小さいすべての正三角形の数を返すことができるはずです。 ボーナス 2 ^ 63-1未満のすべての正方三角数を出力できる場合は-4バイト 理論的に任意のサイズの正方三角数を出力できるための-4バイト。 非多項式時間を要するソリューションの場合、+ …
11 code-golf  number 

1
フェンスポストを見つける
バックグラウンド フェンスポスト工場の近くで原子爆弾が爆発しました!フェンスポストは私たちの文明の存続に不可欠であるため、できるだけ多くを救出する必要があります。放射線耐性のあるロボットを派遣して地域を探索していますが、彼らの人工視覚をプログラムするのはあなたの仕事です。 入力 入力は、|-#改行区切りの文字列として指定された2種類のフェンスポストパーツと瓦bleを表す、文字の長方形のグリッドです。フェンスの支柱は爆発によって恐ろしく損なわれ、一部は熱によって融合しました。候補のフェンスポストを、開始と終了で|1つ以上-のsがある(|-|または|---|そうでない||)水平パターン、または開始と終了で-1つ以上|のs がある垂直パターン(基本的に)のいずれかに定義します90度回転した水平候補フェンスポスト)。実際fencepostは別の候補fencepostとその部分のいずれかを共有しない候補fencepostあります。 出力 出力は、入力グリッド内の実際のフェンスポストの数です。 例 入力グリッドを検討する |#|-|#|## #||--|||# ###|#|--# ###-||--| -#-|#-|#- #---#-#-| #-#-|#--| このグリッドには5つの候補フェンスポストがありますが、実際のフェンスポストは2つだけです(太字で表示)。したがって、正しい出力は2です。 ルール 完全なプログラムまたは関数のいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 追加のテストケース 入力: ##-- ||## -#|- |#|# 出力:0(0候補フ​​ェンスポスト) 入力: -##|-##-- #|#-|#||- --|-#|#|| ##||||-## ||#|--|-| -#|-#--|# |####|#-# 出力:0(5つの候補フェンスポスト) 入力: #|--|---|-|# ####|##--||- -|-##||#|--- -#|#-|-#-||| #|-##--###|- ---#-||-#-## #|---|###|-# -|---#-#|#|# |#--|####-|- 出力:4(8つの候補フェンスポスト) 入力: -|-||---##|# ---|######-# ####-##|#--| …

1
意思決定マップを正規化する
テキストのブロックを処理して新しいテキストを返す関数またはプログラムを作成します。最小の有効なプログラムが勝ちます。 テキストブロックの各行の形式は次のとおりです。 12:34,56 最初の番号は回線IDで、他の2つのコンマ区切り番号は他の回線への参照です。 入力テキストでは、数字は0以上の任意の整数にすることができます。すべての数字はASCIIエンコードされた10進数で、先頭にゼロは付きません。重複する行IDはありません。存在しない回線IDへの参照はありませんが、参照されていない回線IDがある場合があります。 出力テキストでは、最も小さい番号の行がテキストブロックの先頭に移動し、0に再番号付けされます。この行への参照も更新する必要があります。その行の最初の参照は0または1でなければなりません。2番目の参照は、最初の参照が1の場合のみ2になります。それ以外の場合は0または1でなければなりません。 すべての行は昇順で、昇順である必要があります(スキップされた番号はありません)。行n-1への以前の参照があった場合、または現在の行IDがnである場合にのみ、行nへの参照を持つことができます。行0を除き、下位の行IDによって参照されない行があってはなりません。そのような行は、最終出力の前に削除する必要があります。 入力テキストは常に正しい形式であると想定できます。 テスト入力#1: 45:73,24 78:24,78 89:24,73 73:45,3 72:3,24 3:24,24 24:3,89 再注文: 3:24,24 24:3,89 89:24,73 73:45,3 45:73,24 78:24,78 72:3,24 番号が変更されました: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 78:1,78 72:0,1 最終出力のために参照されていない行が削除されました: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 もちろん、プログラムはこの順序に従う必要はなく、正しい出力を生成するだけです。出力は、テキストの単一ブロックまたは言語で最も近いものである必要があります。つまり、文字ごとの直接出力はありません。返すか(優先)、ブロック全体を直接出力することができます。出力が別の関数またはプログラムに渡されると仮定します。 テスト入力#2 5:2,3 7:3,2 2:4,2 4:2,3 3:4,3 出力: 0:1,0 1:0,2 2:1,2 テスト入力#3 …
11 code-golf 

2
Poly Nemoを見つける!
大野!ニモ、私たちの小さなカクレクマノミはこのASCIIの海で失われ、彼の父マーリンは彼を見つけようとしています。 あなたの仕事は、Marlinを安全にNemoに連れて行くことです。しかし、気をつけてください、私たちはルーズにブルースを食べているので、彼を避けてください! 詳細 小文字のアルファベットのみを含む長方形のASCIIオーシャングリッドが表示されますa-z。この海にはがありnemo、marlinそのbruce内部には連続ポリオミノの形で、常にポリオミノの最初の列の一番上のセルから始まります。たとえば、可能なすべてのテトロミノのうち、有効なものは以下のスニペットにリストされています コードスニペットを表示 nemo n e m o no em ne om nem o o nem n e mo o m ne ne m o n emo ne mo n em o mo ne コードスニペットを実行する結果を非表示スニペットを展開 ただし、次のようなフォームは無効であり、入力には含まれません。 omen ne mo nem o o m en nem o n eo …

2
ドクター!
医師は、ダレック軍から脱出しようとする際に、さまざまな空間のポケットを螺旋運動で移動することにより、彼らをスピンさせて送ることにしました。 利用可能な時空の性質に応じて、医師はTARDISに入る必要があり、空間のセクションの高さと幅、およびスパイラルを開始するための入口点を制御します。 空間のセクションは、左から右、上から下へ、1から始まる連続した整数で満たされたh x wグリッドとして想定できます。 開始位置は、行と列のrcとして提供されます...これから、TARDISのソフトウェアは、行r列cから上に向かって反時計回りに外側にらせん状になった整数の順序付きリストを吐き出す必要があります... あなたの仕事は、医師の仲間として、TARDISをプログラムして4つの数字をフォーマットで取得しheight width row column、TARDISが移動する必要がある空間のセクターを決定することです。 入力1 5 5 3 3 (5、5グリッド、位置3,3から開始) 出力1 13 8 7 12 17 18 19 14 9 4 3 2 1 6 11 16 21 22 23 24 25 20 15 10 5 出力の説明 元のグリッド 生成されたスパイラル 入力2 2 4 1 2 …
11 code-golf 

12
CodeGolf-厄介な開発者のバリー#2
これはCodeGolfのフォローアップです。 ノイズ#1を無視 してください。唯一の問題は、バリーが事態をさらに悪化させていることです。何が起きたのか見てみましょう 更新 ランダムな入力と期待される出力を作成するためのコードを追加しました。これは、自分が望むものを説明するのが苦手だからです。 説明 Dumb CorpのAPIの別のメソッドは、プロバイダーがアイテムに対して提供している現在の価格、最大販売を行う最適な価格、および文字列UPまたはとしての以前の価格と比較したその価格の傾向を提供しますDOWN。ショップからアイテムを削除するか、待つかを決定する必要があります。 入力 80,90,UP 150,100,DOWN 65,65,UP 1618,1618,DOWN 840,1200,DOWN 54,12,UP 30,1,UP 予想される出力を備えた巨大な入力サンプルデモの場合、次のコード(js)をブラウザーコンソールに配置すると、テスト用の有効なランダム入力が出力されます。 var output = ""; var result = ""; for(i=10;i--;){ var currentPrice = Math.floor(Math.random() * 10000) + 1; var optimalPrice = Math.floor(Math.random() * 10000) + 1; var tendency = Math.round(Math.random())?"UP":"DOWN"; var tresult = "WAIT\n"; …

6
最大連結製品
整数p1、...、pkのリストが提供されます(必ずしも個別ではありません)。それぞれの値は1から9までの値です。p1、...、pkをそれぞれ1回だけ使用して、数字の連結を形成し、新しい数字のリストを作成できます。次に、この新しいリストの積を出力します。目標は、数字の最適な連結を選択することにより、この製品を最大化することです。 たとえば、リスト2 3 2(スペースで区切られた)が与えられます。次の連結を形成できます。 2 3 2(これらの連結の積は12) 23 2(製品は46) 32 2(製品は64) 22 3(製品は66) 連結を形成できる最大の製品は66なので、出力します。 ルール: 少なくとも1つの乗算が必要です(つまり、すべての桁を連結して出力​​することはできません)。 乗算以外の演算子を使用したり、括弧を挿入したりすることはできません。 指定された整数のリストはスペースで区切られ、すべての整数の値は1〜9であると仮定します。 最短コード(バイト単位)が勝ちます! テストケース: 入力:1 2 3; 出力:(63つまり、21*3) 入力:2 5 9; 出力:468(52*9) 入力:1 2 3 4; 出力:1312(41*32)

2
数独のYウィング戦略
私は最近、本当に難しい数独を生成する新しい数独アプリを手に入れました。これは標準的な戦略では解決できません。それで、私はいくつかの新しいものを学ばなければなりませんでした。これらの戦略の1つはY-Wing戦略です。「厳しい戦略」の下にランク付けされていますが、実際はそれほど難しくありません。 例 この戦略では、4つのセルのみが重要です。したがって、画像内の他のセルはすべて無視しました。 各セルのすべての候補を調べます。次の例では、候補のあるセル3 7(つまり、同じ行に、同じ3x3ボックスに1 2 4 5 6 8 9あるなどの理由で候補をすでに拒否していることを意味します)、候補のあるセル、候補のあるセルと候補のあるセル。Y-Wing戦略は、正解セルの候補からを削除し、候補としてのみ残して、それを埋めることができることを示唆します。したがって、正しい数を見つけ、完全な数独を解決するための一歩近づいています。126 73 62 662 なぜ6削除できるのですか? 説明 6が真のセルの正しい数であると仮定しましょう。今そこにある6ので、我々は削除することができ、この列に6のみ残し、右上のセルの候補から7、我々は埋めることができたし。同じことは、左下のセルで発生します。を削除して6に記入でき3ます。ここで、左上のセルを見ると矛盾が生じています。これ7は、同じ行と列に既にaが存在するため、候補のと3を削除し7て、3候補をまったく残さないようにするためです。これは明らかに不可能です。したがって、6は正しいセルの正しい数にはなりません。 より正確には:候補を持つセルが4つあり[A B] [A C] [C D] [B C](この順序または循環回転)、セルが(同じ行、同じ列、または同じ3x3ボックスを介して)円で接続されている(セル1がセル2に接続されている場合) 1セルに接続された4セルに接続されているセル3)に接続され、削除することができるよりも、Cより[C D]細胞。これは3個のセルという、非常に重要である[A B]、[A C]と[B C]2人のだけの候補者それぞれが含まれています。異なるセルには[C D]、多かれ少なかれ含まれている可能性があります(Dゼロ、1つ、またはさらに多くの候補が可能です)。 どちらの方法でも接続できると明示的に述べたことに注意してください。次の例では、戦略が再び適用されていることがわかります。しかし、今回は4つのセルが長方形を形成していません。左下と右下のセルは、同じ3x3ボックス内にあるため、単純に接続されています。Y-Wingによると、1左上のセルの候補として削除できます。今回は、このセルにまだ2つの候補が残っているため、実際には新しい正しい番号が見つかりませんでした。しかし、それにもかかわらず、1さまざまな戦略への扉を開くことができます。 戦略についての詳細が必要な場合、またはさらにいくつかの例が必要な場合は、sudokuwiki.orgにアクセスしてください。 チャレンジ仕様 セルの候補を表す4つのリストを入力として受け取ります。4つのセルは円のように接続されます(セル1はセル2に接続され、セル2はセル3に接続され、セル3はセル4に接続され、セル4はセル1に接続されます)。各リストは昇順でソートされていると想定できます。 あなたの仕事は、(Y-Wing戦略を適用して)1人の候補者を削除し、結果の候補者リストを同じ順序で返すことです。戦略を適用できない場合は、同じ候補者リストを返すだけです。 2つの解決策がある場合(セルBのAを削除するか、セルDのCを削除することができます)、1つのソリューションのみを返します。どちらでもかまいません。 入力は、任意のネイティブリストまたは配列形式にすることができます。リストのリストなどを使用することもできます。STDIN、コマンドライン引数、プロンプトまたは関数引数を介して入力を受け取り、戻り値を介して、または単にSTDOUTに出力することで出力を返すことができます。 これはコードゴルフです。最短のコード(バイト単位)が優先されます。 テストケース [3 7] [6 7] [2 6] [3 6] => [3 …
11 code-golf  sudoku 

3
ラップアラウンドサブシーケンス
前書き この課題では、一般的な文字列のサブシーケンスを見つけることがタスクです。サブシーケンスは必ずしも連続しているわけではなく、文字列を「ラップアラウンド」して、その終わりを超えて最初からやり直すこともできます。ただし、ラップの数を最小限に抑える必要があります。 より正式には、let uとvbe任意の2つの文字列、およびk ≥ 0整数です。私たちuは、のようなkラッピングのサブシーケンスでありv、のような別個のインデックスが存在し、最大でインデックスが満たされると言います。これは、左から右に移動し、途中でキャラクターの一部を選択し、ほとんどの時間をラップすることで(同等に、最大でスイープすることで)内部で見つけることができることを意味します。ラップアラウンドの後でも、複数の文字を選択することはできません。また、-wrappingサブシーケンスは、私たちがよく知っている通常のサブシーケンスであることに注意してください。i1, i2, ..., ilen(u)u == v[i1] v[i2] ... v[ilen(u)]kijij > ij+1uvkk+1v0 タスク あなたの入力は二つの非空の英数字文字列であるuとv、そしてあなたの出力は、整数最小となるkようuであるkの-wrappingサブシーケンスv。そのようなものkが存在しない場合、出力はになります-1。 例 入力u := xyzyxzzxyxとを考慮してくださいv := yxzzazzyxxxyz。uin の文字をv貪欲な方法で探し始めたら、約3回ラップします。 yxzzazzyxxxyz >─x─────y────z┐ ┌─────────────┘ └y───────x────┐ ┌─────────────┘ └──zz─────x─y─┐ ┌─────────────┘ └──────────x──> したがって、正しい出力は最大で3です。一番左の文字xが1回選択され、2回目のスイープでは再利用できないため、どのように無視されるかに注意してください。ただし、ラップアラウンドが2つしかない短い方法があります。 yxzzazzyxxxyz >──────────xyz┐ ┌─────────────┘ └yxzz────x────┐ ┌─────────────┘ └───────y─x───> 1回のラップアラウンド(つまり、2回のスイープ)では不十分であることが判明したため、正しい出力は2です。 ルールとボーナス 関数または完全なプログラムのいずれかを記述でき、必要に応じて入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 合計10秒未満ですべてのテストケースを計算すると、-10%のボーナスがあります。私のマシンで不明瞭なケースをテストします。Pythonでのリファレンス実装には約0.6秒かかります。1.86 GHzデュアルコアCPUを搭載した7歳のラップトップを使用していますが、これを考慮する必要があります。 テストケース "me" "moe" -> 0 …

10
警官と強盗
誰もがConwayのGame of Lifeを常に実装したいと考えています。つまらない!代わりに警官と強盗をしましょう! 警官と強盗の2つのチームがあります。各チームには、それぞれ50のヘルスを持つ5人のメンバーがいます。プログラムは継続的にループします。各反復で、次のことが発生します。 チームごとに、最初の文字(C警官、R強盗)、スペース、スペースで区切られたメンバーのHPのリスト、および改行を印刷します。これがチームのステータスです。両方が完了したら、別の改行を印刷します。たとえば、最初のラウンドのように見えるものは次のとおりです。 C 50 50 50 50 50 R 50 50 50 50 50 1〜10の乱数(1と10の両方を含む)を選択します。番号を呼び出しますN。N偶数であれば、強盗はこのラウンドを失います。奇数の場合、警官は負けます。 HPが0より大きい負けたチームのメンバーをランダムに選び、NHP を差し引く。メンバーのHPはステータスで0を下回ってはなりません。 ループを再開します。 1つのチームのすべてのメンバーがHPをすべて失うと、ゲームは終了します。その後、警官が勝った場合、次のように出力されます: C+ R- そして強盗が勝った場合: R+ C- これはコードゴルフであるため、最短のキャラクターが勝ちます。 Python 2のサンプル実装を次に示します。 import random cops = [50]*5 robbers = [50]*5 while any(cops) and any(robbers): # print the status print 'C', ' '.join(map(str, …
11 code-golf 

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