タグ付けされた質問 「king-of-the-hill」

キングオブザヒルは、提出物が何らかの形式のゲームで相互作用し、競合するゲームを示します。相互作用なしでプログラムを互いに競い合う競争は、むしろ[コードチャレンジ]を使用するべきです。

12
天体官僚制KoTH
中国帝国では、社会のランクは出生や富ではなく、帝国試験で優れている人の能力によって決定されました。神の天の支配者である玉皇帝は、彼のすべての主題を調べて彼らの価値を決定し、次に中国を統治するために神の使命を誰に与えるかを求めました。 官僚制のルール: 神官官僚制は、0から始まる負ではない整数値のランクで構成されます。官僚制の各メンバー(ボット)は1つのランクに属します。各ランクは任意の数のメンバーを保持できますが、上記のすべてのランクが空でない限り空にすることはできません ゲームの開始時に、すべてのメンバーのランクは0です 毎ターン、官僚の各メンバーは試験に答えなければなりません。試験は、リストのブール値を正しく推測することで構成されています。リストの長さは、メンバーの上のランクの数です。 試験問題は、上記のランクのランダムなメンバーによって準備されます。最高ランクのメンバーは質問を直接受け取りますJadeEmperor(以下を参照) 試験で少なくとも50%を獲得したメンバーは、プロモーションの対象となります。試験の得点が50%未満の会員は降格の資格があります。 降格の資格があるメンバーのランクは、下のランクに昇格する資格のあるメンバーがいる場合にのみ1減少します。 昇格の資格があるすべてのメンバーは、ランクが空にならない限り、ランクが1ずつ上がります。 すべての資格のあるメンバーを降格または昇格できるわけではない場合、優先順位は(降格の)最も低いメンバーになります。最高の(プロモーション用)スコア。ネクタイはランダムに壊れます。 メンバーのランクは、各ターンで最大1つまでしか変更できません。 ゲームのルール: 各ボットには、ゲームの開始時にIDがランダムに割り当てられますが、そのIDはコース中に変更されることはありません。のJadeEmperorIDは-1で、他のすべては0から始まる連続した非負のIDです。 すべてのボットが同時に競合する ゲームは100ターン実行され、ボットのスコアはその期間中に所有した平均ランクです。 合計スコアは、1000ゲームを実行し、結果を平均することにより取得されます。 各ボットは、次の4つの機能を実装するPython 3クラスです。 ask(self,n,ID)、list長さnのブール値を返すことにより試験を行います。IDは、そのリストを推測する必要があるボットのIDです。ask()任意のボットの単一ラウンド中に何度も呼び出すことができますが、まったく呼び出せません。 answer(self,n,ID)、これはlist長さnのブール値のa を返すことにより試験に答える試みです。IDは、ask()試験を生成したボットのIDです。answer()各ボットのラウンドごとに1回だけ呼び出されます。 update(self,rankList,ownExam,otherExams)コントローラーがすべての昇格と降格を実行すると呼び出されます。その引数は次のとおりです。すべてのボットのIDですべてのランクをリストする整数のリスト。2つのリストで構成されるタプル。最初は試験の質問、次にボットが出した回答(忘れた場合に備えて)。次に、同様に試験回答ペアで構成されるタプルのリスト。今回はボットが配布したすべての試験について。 __init__(self, ID, n) ボットに独自のIDと競合するボットの数を渡します。 クラスは私的使用のために他の機能を実装することができます さらに変数を定義し、それらを使用して過去の試験に関するデータを保存することは明示的に許可されています。 メタ効果のプログラミングは禁止されています。つまり、他のボットのコード、コントローラーのコードに直接アクセスしようとすると、例外などが発生します。これは試験の戦略のコンテストであり、コードハッキングのコンテストではありません。 お互いを助けようとするボットは、メタ効果を介してそれを行わない限り、明示的に許可されますが、純粋に通過する情報によって update() 他の言語は、Python 3に簡単に変換できる場合にのみ許可されます。 ライブラリnumpyはとしてインポートされnpます。バージョンは1.6.5です。つまり、古いランダムライブラリを使用します。numpy 1.7をお持ちの場合numpy.random.mtrand、テスト用に古い関数を使用できます。mtrandを削除することを忘れないでください。 実行時にボットが例外を発生させた場合、失格となります。コードが非常に難読化されているため、ask()またはanswer()が呼び出されたときに長さnのリストを生成するかどうかを判断できないボットも、プリエンプティブに失格になります。ディープコピーの出力を強制するボットは、スコアで-1を取得します。 クラス名は一意である必要があります 1人につき複数のボットが許可されますが、繰り返し更新されるボットの最新バージョンのみが取得されます。 ボットの類似性について混乱があるようです。 別のボットのコピーを投稿することはできません。これは、この課題に実際に適用される唯一の 標準的な抜け穴です。 あなたがされている許可され、他の人のボットを含む他のボット、とのコードを共有しているために。 そのようなカーボンコピーボットの数が成功するために最低限必要であることを証明できる場合を除き、戦略に対する些細な変更(質問生成のシードの変更など)のみが異なるボットを送信することはできません。彼らの戦略の制定(通常、協力のために2つのボットになります)。 ボットの例: JadeEmperor常にゲームの一部ですが、競合しません。彼は最高ランクのボットの試験のジェネレーターとして機能します。彼の試験はランダムですが、均一ではなく、スマートボットが前進する方法を可能にします。 class JadeEmperor: def __init__(self): pass …

8
丘の王になるためにクーデターを上演!
リーダーボード 154 Calculator 144 Taxman 138 Statistician 137 Solver 137 RandoAggroLawyer 136 Gambler 134 Turncoat 119 Lawyer 119 BloodyMurder 113 Bandit 79 Challenger 74 Mask 64 Random ログおよびすべての出力ファイルを含む最新の一致のアーカイブが利用可能です。 Brilliandの電卓が勝者です!彼の答えは受け入れられますが、それは挑戦が終わったという意味ではありません。新しいエントリを送信するか、現在のエントリを編集して、彼の王位をノックアウトしてみてください。月末にリーダーに賞金を授与します。 遊びのルール クーデターは2〜6人のプレイヤー向けに設計されたカードゲームで、2人でプレイします。それは、コインの宝庫(私たちの目的では無限です)と15枚のカードのデッキで構成され、次の各タイプを3枚含んでいます:大使、暗殺者、キャプテン、コンテッサ、デューク。ゲームの開始時に、各プレイヤーにはコインが1枚与えられ、ランダムに2枚のカードが配られます。オブジェクトはあなたの手にカードを持つ最後のプレイヤーになることです。 ターンでは、プレイヤーはカードに関係なく次のいずれかのアクションを実行できます。 収入:財務省からコインを1枚受け取ります。ブロックできず、変更不可能。 対外援助:国庫から2枚のコインを受け取ります。デュークを持つプレイヤーによってブロックすることができます。挑戦できない。 クーデター:選択した対戦相手のカードを1枚プレイから取り除きます。コストは7コイン。被害者は、破棄するカードを選択できます。プレイヤーが自分のターンの開始時に10個以上のコインを持っている場合、彼らはクーデターをしなければなりません。ブロックできず、変更不可能。 カードに応じて、プレイヤーは次のいずれかのアクションを自分のターンとして実行することもできます。 交換:アンバサダーを持つプレイヤーは、デッキから2枚のカードを取ることができます。その後、彼らは自分の手札と描かれたカードから、元々持っていた数のカードを選ぶことができます。(つまり、カードが1枚しかない場合は、描かれたカードの1つと交換または保管できます。2枚のカードがある場合は、4枚のカードのうち2枚を選択できます。)2枚の不要なカードをデッキに戻します。ブロックできませんが、挑戦的です。 暗殺:暗殺者を持つプレイヤーは、ゲームから対戦相手のカードを取り除くために3コインを使うことができます。被害者は、破棄するカードを選択できます。コンテッサを持つプレイヤーによってブロックされる可能性があります。その場合、コインは返却されません。チャレンジ可能、その場合、コインは返却されます。 盗む:キャプテンを持つプレイヤーは、相手からコインを2枚取ることができます。相手がコインを1枚持っている場合、そのコインを1枚取ります。相手のコインがゼロの場合、彼らは盗むことはできません。アンバサダーまたはキャプテンを持つプレイヤーがブロックできます。挑戦的。 税金:公爵を持つプレイヤーは、財務省から3枚のコインを受け取ることができます。ブロックできませんが、挑戦的です。 クーデターのトリッキーな部分は、プレーヤーが持っているカードについて嘘をつくことを許可されていることです!アクションを実行したり、それに関連付けられたブロックを試みるためにカードを用意する必要はありません。 プレーヤーがカードのアクションを実行すると、対戦相手(そのアクションによって害を受けていない相手も含む)は、俳優に挑戦し、そのアクションのカードを持っているとは思わないと言います。チャレンジャーが正しければ、アクションはキャンセルされ、アクターは選択したカードを1枚捨てる必要があります(該当する場合、消費したコインを取り戻します)。そうでない場合、アクションが実行され、アクターはチャレンジされたカードをデッキに戻し、新しいカードを引きます。チャレンジャーはカードの1つを捨てなければなりません。プレイヤーは、チャレンジしたときにどのカードを持っているかについて正直でなければなりません。 暗殺、クーデター、ロストチャレンジでプレイから除外されたカードはデッキに戻されませんが、勝ったチャレンジの一部として公開されたカードはデッキに戻されます。 ブロックはアクションと同じようにチャレンジされます。たとえば、プレーヤーAが外国援助を主張し、プレーヤーBが「私は公爵を持っているのにあなたの外国援助をブロックしている」と言った場合、Aは「あなたが公爵を持っているとは思わない」と言うかもしれません。その主張が正しい場合、Bは嘘をつかんだためにカードを失い、Aは2枚のコインを受け取ります。そうでない場合、Aはカードを失い、コインを受け取らず、Bはデュークをデッキに戻して新しいカードを引く必要があります。 Assassinateでのブロックとチャレンジの仕組みを具体化する必要があります。プレイヤーAが「私には暗殺者がいて、プレイヤーBを暗殺する」と言ったとします。BがAに挑戦したりブロックしたりしない場合、暗殺が行われます。Bはカードを失い、Aは3枚のコインを支払います。 あるいは、Bは「あなたが暗殺者を持っているとは思わない」と言って挑戦することができます。そうであれば、Aはカードを捨ててコインを返し、Bは影響を受けず、Aのターンは終了します。Bの信念が正しくなく、Aが暗殺者を保持している場合、Bは両方のカードを失い、失敗します。1つは不正なチャレンジで、もう1つは暗殺からです。 挑戦する代わりに、Bは「コンテッサがあり、暗殺者をブロックする」と言うことができます。AがBを信じている場合、Aのターンは終了し、コインは返却されません。しかし、Aはブロックに挑戦して「コンテッサを持っているとは思わない」と言うことができます。Bが実際にコンテッサを保持している場合、Aは不正なチャレンジのカードを失います。しかし、Bがそうしなかった場合、Bは1枚のカードを嘘に巻き込まれ、もう1枚を暗殺から失います。 上記の説明と同様のロジックは、キャプテンのスティール能力に適用され、アクションまたはブロックのいずれかにチャレンジすることができます。 暗殺に挑戦することに失敗した場合、または暗殺を阻止するためのコンテッサを持っていると誤って主張した場合、1ターンで両方のカードを失い、排除することができます。チャレンジから1枚のカードと暗殺から1枚のカードを失います。 チャレンジ …

9
非対称KOTH:Catch the Cat(Catスレッド)
非対称KOTH:猫を捕まえる UPDATE: Controller.javaが例外(エラーのみ)をキャッチしなかったため、gistファイルが更新されます(新しいサブミッションを含む)。現在、エラーと例外をキャッチし、それらも出力します。 このチャレンジは2つのスレッドで構成されています。これはcatスレッドです。キャッチャースレッドはここにあります。 コントローラーはここからダウンロードできます。 これは非対称のKOTHです。各サブミッションは猫またはキャッチャーです。それぞれの猫とキャッチャーの各ペアの間にゲームがあります。猫とキャッチャーは別々のランキングを持っています。 キャッチャー 六角形のグリッドに猫がいます。あなたの仕事は、できるだけ早くそれをキャッチすることです。猫がそこに行くのを防ぐために、毎ターン、1つのグリッドセルに水バケツを置くことができます。しかし、猫は(おそらく)愚かではなく、バケツを置くたびに、猫は別のグリッドセルに移動します。グリッドは六角形であるため、猫は6つの異なる方向に進むことができます。あなたの目標は、猫を水バケツで囲むことです。 ネコ あなたは、キャッチャーがあなたの周りに水バケツを置くことによってあなたを捕まえようとしているのを知っています。もちろん、あなたは逃げようとしますが、あなたが怠catな猫であるように(猫はそうです)、あなたはまさにその時に一歩を踏み出します。つまり、同じ場所に滞在することはできませんが、周囲の6つのスポットのいずれかに移動する必要があります。キャッチャーが新しい水バケツを置いたのを見るたびに、別のセルに行きます。もちろん、できるだけ長く回避しようとします。 グリッド グリッドは六角形ですが、六角形のデータ構造がないため、11 x 11正方形の2D配列を取り、猫が6方向にしか移動できない六角形の「動作」を模倣します。 トポロジーはトロイダルです。つまり、アレイの「外側」のセルを踏むと、アレイの反対側の対応するセルに転送されます。 ゲーム 猫はグリッドの指定された位置から始まります。キャッチャーは最初の動きをすることができ、猫とキャッチャーは猫が捕まるまで交互に動きます。ステップ数は、そのゲームのスコアです。猫は可能な限り大きなスコアを取得しようとし、キャッチャーは可能な限り低いスコアを取得しようとします。参加したすべてのゲームの平均合計が提出のスコアになります。猫用とキャッチャー用の2つの別々のランキングがあります。 コントローラ 指定されたコントローラーはJavaで作成されています。キャッチャーまたは猫として、それぞれJavaクラスを実装し(既にいくつかの基本的な例があります)、playersパッケージに配置する必要があります(さらに、コントローラークラスの猫/キャッチャーのリストを更新します)。そのクラス内の追加機能。コントローラーには、単純なcats / catcherクラスの2つの実例がそれぞれ付属しています。 フィールドは、セルの現在の状態の値を格納する11 x 112D int配列です。セルが空の場合は値0があり、猫がいる場合は値-1があり、バケットがある場合はがあり1ます。 あなたが使用できるいくつかの特定の機能がありますisValidMove()/ isValidPosition()あなたの移動(猫)/位置(キャッチャー)が有効であるかどうかをチェックするためのものです。 あなたの番になるたびに、関数takeTurn()が呼び出されます。引数には、現在のグリッドのコピーが含まれており、read(i,j)のセルを読み取るためのメソッドや、回答の有効性をチェックするメソッドが(i,j)含まれisValidMove()/ isValidPosition()ています。これにより、トロイダルトポロジのラップも管理されます。つまり、グリッドが11 x 11のみの場合でも、セルにアクセスできます(-5,13)。 このメソッドはint、可能な移動を表す2つの要素の配列を返す必要があります。猫の場合、これらは{-1,1},{0,1},{-1,0},{1,0},{0,-1},{1,-1}猫が行きたい場所の相対位置を表し、キャッチャーはバケツを置きたい場所の絶対座標を返します{i,j}。 メソッドが無効な移動を生成する場合、提出は失格となります。移動先がすでにバケットであるか、移動が許可されていない/移動先が既に占有されている場合(猫として)、またはバケット/猫が既に存在する場合(キャッチャーとして)、移動は無効と見なされます。あなたは、与えられた関数で事前にそれをチェックすることができます。 提出は合理的に高速に動作するはずです。メソッドが各ステップで200ミリ秒以上かかる場合、失格になります。(できればもっと少ない...) プログラムは、ステップ間で情報を保存できます。 提出 必要な数だけ提出できます。 既に提出した提出物を大幅に変更しないでください。 新しい回答を提出してください。 各提出には、一意の名前を付けることができます。 提出物は、クラスのコードと、提出物の仕組みを説明する説明で構成する必要があります。 <!-- language: lang-java -->自動構文強調表示を得るために、ソースコードの前に行を書くことができます。 得点 すべての猫は、すべてのキャッチャーと同じ回数だけ競争します。私は頻繁に現在のスコアを更新しようとします、アクティビティが減少したときに勝者が決定されます。 この挑戦はこの古いフラッシュゲームに触発されています @PhiNotPiにテストと建設的なフィードバックを提供してくれてありがとう。 現在のスコア(ペアリングごとに100ゲーム) …

4
Scriptbot Warz!
Scriptbot Warz! 結果は内にあり、暗殺者が私たちのチャンピオンであり、3試合中2試合に勝ちました!Scriptbotを送信したすべての人に感謝します!優れたパスを表示し、すべてのアクションオプションを最大限に活用したBestOpportunityBotのホーンに感謝します。 地図1 暗殺者は早い段階でBestOpportunityBotを使用しましたが、残りの試合はかなり退屈でした。詳細なプレイバイプレイはこちら。 暗殺者:HP 10、ダメージ10、ダメージ3 The Avoider v3:10 HP、0ダメージ、0ダメージ 食べ終わった:10 HP、0ダメージ、0ダメージ BestOpportunityBot:HP 0、ダメージ3、ダメージ10 地図2 BestOpportunityBotはこの試合でほとんどの作業を行いましたが、アサシンは最終的に彼を連れ去ることができました。詳細なプレイバイプレイはこちら。 暗殺者:2 HP、10ダメージ、9ダメージ BestOpportunityBot:HP 0、ダメージ32、ダメージ10 The Preventer v3:0 HP、0ダメージ、12ダメージ 食べ終わる:0 HP、0ダメージ、11ダメージ 地図3 BestOpportunityBotは、この試合で全員をtrapに追い込みました。とてもかっこいい。詳細なプレイバイプレイはこちら。 BestOpportunityBot:HP 10、ダメージ30、ダメージ0 暗殺者:0 HP、0ダメージ、0ダメージ 食べ終わる:0 HP、0ダメージ、0ダメージ The Avoider v3:HP 0、ダメージ0、ダメージ0 ご回答ありがとうございます!Scriptbotが4つしかないため、以下の各マップに1つずつ、3つの完全無料試合のトーナメントプランを放棄します。最高の勝利記録を持つスクリプトボットが勝利します。ネクタイが発生した場合、ネクタイを破ったスクリプトボットが最初に勝つという突然の死になります。 あなたがそれを受け入れることを選択した場合、あなたの仕事は、ASCIIマップを横断してその敵を破壊できるScriptbotをコーディングすることです。各バトルは、ランダムなスタート順のターンベースのゲームの形をとり、各スクリプトボットはアクションを起こすためにエネルギーポイント(EP)を費やす機会があります。GameMasterスクリプトは、各Scriptbotに入力を送り、出力を解釈します。 環境 各Scriptbotは独自のディレクトリ内に含まれており、そこでファイルとファイルから読み取りmap、statsファイルへの読み取り/書き込みがdataできます。このdataファイルは、役に立つと思われる永続的な情報を保存するために使用できます。 統計ファイル statsファイルには、あなたの対戦相手についての情報が含まれており、次のようにフォーマットされます。各プレイヤーは別々の行に表示されます。最初の列はプレーヤーIDです(@あなたを意味します)。2番目の列は、そのプレーヤーの健康状態です。 1,9HP @,10HP 3,9HP 4,2HP マップファイル …

1
迷路の設計と解決[サンドボックス中に保留]
あなたの仕事は、インセプションからこのシーンで両方のキャラクターの役割を果たすことです。その中で、コブはアリアドネに課題を与えます: 解決に1分かかる迷路を設計するのに2分あります。 その説明にはいくつかの自由があります。最も重要なことは、この課題は時間ベースではなく、スコアが迷路と迷路ソルバーの有効性に基づいていることです。 簡単で公正なフォーマットに向けて反復する際に、この課題に対する多くの編集をおforびします。 パートI:迷路形式 すべての迷路は正方形です。迷路内のセルは、インデックスがゼロのタプルとして表されますrow column。 壁は2つのバイナリ文字列で表されます。1つは水平壁(行間の移動をブロックする)と1つは垂直壁(その逆)用です。上にNxN迷路があるNx(N-1)各タイプの可能な壁。セルにラベルが付けられている3x3の例を見てみましょう。 A B | C --- D | E F --- G H | I 可能なすべての垂直壁は次のとおりAB BC DE EF GH HIです。文字列に変換すると、示されている壁は011001垂直壁010010用と水平壁用です。また、「バイナリ文字列」とは、「文字「0」と「1」」を意味します。 完全な迷路形式は、次の順序で含まれる文字列です。 幅 セルタプルを開始 エンドセルタプル 水平壁 垂直壁 たとえば、この迷路: 0 1 2 3 4 _________ 0 | | E| _| 1 | _|_|_ | …

15
論理ゲートを手動で
基本的な論理ゲートをシミュレートするプログラムを作成します。 入力:スペースなどで区切られた、2つの1桁の2進数が続く、すべて大文字の単語OR 1 0。門OR、AND、NOR、NAND、XOR、およびXNOR必要とされています。 出力:入力された論理ゲートの出力には、1または0の2つの数値が与えられます。 例: AND 1 0なります0 XOR 0 1なり1 OR 1 1ます1 NAND 1 1なります0 これはcodegolfなので、最短のコードが優先されます。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

12
Reaperをプレイしましょう-投稿は締め切りました
注:このコンテストの勝者はJack !!!です。これ以上の提出は受け付けられません。 ここに、この王様の挑戦のためのチャットルームがあります。これは私の最初のものですので、私は提案を受け入れています! 死神は、忍耐と欲を含む問題解決の技術によって開発されたゲームのコンセプトです。KOTHスタイルのコンテストに合うようにゲームを修正した後(提案と改善について@NathanMerrillと@dzaimaに感謝します)、ここに課題があります。 ゲームは次のように機能します。ティックごとに特定の定数で乗算するReapと呼ばれる値があります。各ティックの後、各ボットには「リーピング」オプションがあります。つまり、Reapの現在の値をスコアに追加し、Reapを1に減らします。 ただし、ボットが「リープ」の間に待機しなければならない固定数のティックと、ゲームに勝つために必要な固定数のポイントがあります。 簡単ですか?入力は次のとおりです。 I / O Python 3で3つの入力を取る関数を作成します。1つはself、クラスオブジェクトの参照に使用されます(後述)。2つ目は、Reap「刈り取る」場合に獲得する刈り取りの現在の値です。3つ目はprevReap、前のティックで獲得したボットのリストです。 関数でアクセスできる他のオブジェクト: self.obj: An object for your use to store information between ticks. self.mult: The multiplier that Reap is multiplied by each tick self.win: The score you need to win self.points: Your current set of points self.waittime: The amount …

30
プライムパワーからプライムを回復する
定義:素数はp nの形式で表現できる自然数です。pは素数で、nは自然数です。 タスク:プライムパワーp n > 1の場合、プライムpを返します。 テストケース: input output 9 3 16 2 343 7 2687 2687 59049 3 得点:これはcode-golfです。バイト単位の最短回答が優先されます。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

7
ポイントで変異した箸KoTH
基本的なルール(私のルールとは異なります) 物語 4579年、人間はそれぞれ1001本の指を持つ2つの手になりました。箸はポイントに基づいています。そして、@ Dennisは@Martinよりも多くの担当者がいます...手描きの赤い丸は今では投票されていません... Jon SkeetはすべてのSEサイトで2兆回の担当者を叩いています...ええ、怖いです 箸は解決されたハンドゲームです。これを回避するために、変異させて作成しました。指の量を増やしました。 ゲームのルール これが演奏される方法 誰もが2つの手で始まります。各手には1001本の指があります。すべての手は上の1(1)指で起動し、それぞれの手。ターン中に、他のプレイヤーの手を「ヒット」できます。ヒットするには、ヒットするハンドを1つ、ヒットするハンドを1つ選択します。ヒットしたハンドには、最初は指の数があり、ヒットした手に持っていた指の数があります。 EX P1: 1,1 P2: 1,1。P1[0]ヒットP2[1]。今指はP1:1,1 P2:1,2です。今P2[1]ヒットp1[0]。指はP1:3,1P2になりました1,2。 片方の手が1001本以上の指に達すると、その手は外に出ます。その後、(自分のターンで)ハンドを手にしたプレイヤーは「スプリット」できます。分割とは、中にある手を取り、指の量を半分に切り上げ(切り上げ)、それらの指をもう一方の手に渡して戻すことです。 EX P1:1000,2P2 7,7。P2[0]ヒットP1[0]。スコアはP1:0,2P2 1,1です。P1[1]彼のターンでスプリットし、スコアはP1:1,1とP2 7,7です。 1人のプレイヤーが両方の手を出したらゲームは終了します。ポイントは、勝者が持っている指の量によって得点されます。ポイントが多いほど良い。敗者はポイントを獲得しません。 使用される他のルールがありますが、これらはここで使用されるものです。 みんながみんなで遊ぶ(ラウンドロビン) 終盤 あなたが勝つすべてのラウンドからあなたのポイントを合計します。次に、全員のポイントを平均します。合計を平均ポイントで割り、最終スコアを取得します。ほとんどのポイントが勝ちます。 実際のルール 標準抜け穴 ゲームを解決しようとしないでください。私は実際にそれを実行できる必要があります:P ボットが高速で実行できることを確認します。ラウンドの長さを判断するにはこれには時間がかかります プログラムに必要なすべてのライブラリは、デフォルトのpythonライブラリに含まれている必要があります。インポートする必要があるものもリストします。輸入はちょうど(数学のために私は:基本的なインポートされますimport math) 回答はPython 3.xで動作する必要があります ハンドラ ボットは、play機能を持つ独自のPython 3ファイルになります。 playそれぞれ2つの数字の2つのリストが渡されます。この数字は、各手に何本の指が上がっているかを示しています。最初のリストは自分の手です。 他のプレイヤーのハンドをヒットすることを選択した場合、2ビットのリストを返します。最初のビットは、ヒットする0ために使用しているハンドのインデックス(最初、1最後)であり、2番目のビットは、相手にヒットしているハンドのインデックスです。 分割することを選択した場合、他の真の値を返します。 多田! コントローラはここにあります。各ボットを独自のファイルに保存し、各ボットのファイル名を(なしで.py)にリストしbotnamesます。 最後のメモ: あなたと他のボットが最初に交代します。ゲームが100,000(10万)ラウンドで終了しない場合、ゲームは終了し、どちらのボットも勝ちません。 コントローラーは、永久に移動することから保護されていませんが、不要なオーバーヘッドは強く眉をひそめます。

4
レオのポーカーフェイス
ポーカーフェース 前書き レオはポーカーを楽しんでいますが、Tech Inc.での彼の仕事は、彼が上手にプレーする方法を学ぶことを要求しすぎています。コンピュータ科学者であるレオは落胆していません。彼はポーカーを学ぶために必要な時間よりも多くの時間を費やすことに決め、それを使ってポーカーボットを作成し、より良いプレーを支援します。しかし、今レオには問題があります:少し上手にプレイする方法を理解するために、レオは複数の「人」の複数のゲームを観察する必要がありますが、「人」はゲームの品質と現実を改善するために異なるプレイスタイルを必要とします。 チャレンジ レオは、実際にプログラミングの課題に特化したウェブサイトがあり、あなたの助けを募集していることを思い出します!あなたの仕事は、修正版の5カードポーカー「Pokerface」をプレイするプログラムを書くことです。プログラムは、希望する形式で5カードの手として入力を受け取り、その後、プログラムは出力します。 プレーヤーがカードを交換する場合は、正確に(大文字と小文字を区別する) "true" "1"または "t"、その他の場合は空でない他の出力。 trueの場合、プレーヤーが交換したいカードのインデックスおよび/またはカード名のリスト。 プレーヤーが必要とする追加のカードの数を指定する0〜3の単一の数値。 プレーヤーが使用したい手を印刷します。 (以下のフォーマットを参照) ポーカーフェイスのルール pokerfaceはテキストベースのアドベンチャーゲームであるため、カードは一貫した方法で提示する必要があります。カードは2つの文字コードで表され、最初の文字はスーツ、2番目の文字はカードの名前です。 カード: 2-9 = 2-9 10 = T ジャック= J クイーン= Q キング= K エース= A スーツ: スペード= S クラブ= C ハート= H ダイヤモンド= D したがって、スペードのエースはSA、ハートの10はHT、ダイヤモンドの4番目はD4などになります。 Pokerfaceの1ラウンドは4つのステップで構成されています。 デッキがシャッフルされ、各プレイヤーに5枚のカードが配られます。 各プレイヤーには、好きなだけカードを交換する機会が与えられます。 各プレイヤーには、最大3枚のカードを獲得する機会が与えられます。 各プレイヤーはベストハンドを公開する必要があります。 最高のハンドが勝ち、そのプレーヤーにポイントを獲得します。同点の場合、両方のプレイヤーがポイントを獲得します。 単一のゲームでは、10ラウンドがプレイされ、最もポイントの多いプレーヤーが勝ち、単一の「勝ち点」を獲得します。同点の場合、両方のプレイヤーが勝利ポイントを獲得します。 レオには実際には多額のお金がないので、ボットはこれが賭けのない完璧な世界であると想定できます。 手 …

10
コードボット3:並列プログラミングのアンチパターン
お帰りなさい!3つ目のCodeBotsチャレンジを紹介できることを嬉しく思います。これは、作成に長い時間がかかりました。この課題は、ショートバージョン、ロングバージョン、および追加の詳細の3つのセクションに分割されます。 ショートバージョン 各競技者は24コマンドプログラムを作成します。これらのボットは世界中を移動し、コードを他のボットにコピーしますが、他のボットが同じことを実行できないようにします。可能なコマンドの1つはno-op Flagです。ボットがFlag他のボットよりも多くのボットを持っている場合、Flagポイントを獲得します。最も多くのポイントを獲得して勝ちます。 上記のすべては、過去2つの課題に当てはまりました。今回は、ボットは複数行のコードを同時に実行できます。 ロングバージョン API すべてのボットには24行あります。各行の形式は次のとおりです。 $label command parameters //comments ラベルとコメントはオプションであり、各コマンドには異なる数のパラメーターがあります。すべて大文字と小文字は区別されません。 パラメーター パラメーターは入力され、次の形式にすることができます。 0〜23の値。 変数:A、B、C、D 加算を使用した値:A+3または2+C 符号を使用して指定されたコード行#(#45行目#C+2を表し、で計算された行を表しますC+2)。 $labelコード行を指定する代わりにを使用できます。 で指定された相手の変数またはコード行*。対戦相手は、あなたが直面している広場のボットです。(*B対戦相手のB価値を*#9表し、敵の10行目を表します)。その正方形に誰もいない場合、コマンドは実行されません。 コマンド Vを移動 ボットを移動しNorth+(V*90 degrees clockwise)ます。動きは方向を変えません。 Vを回す ボットをV*90 degrees時計回りに回転させます。 VWをコピー にあるものをにコピーVしWます。Vが行番号の場合、行番号であるW必要があります。Vが変数または値の場合、変数でWなければなりません。 国旗 何もしません。 Vを開始 変数にアタッチされた新しいスレッドを開始しますV。すぐに、そして将来の各ターンで、スレッドはlineでコマンドを実行しますV。 Vが既にスレッドに接続されている場合、このコマンドはノーオペレーションです。場合はV、相手の変数であり、その後、相手はその変数に添付スレッドを開始します。 停止V Vこのターンの終わりに変数に接続されたスレッドを停止します。 ロックV を呼び出したスレッド以外の方法で、行または変数Vが使用されないようにしますLock。Lock同じスレッドによるの後続の呼び出しでロックが解除されVます。ロックは、相手の変数またはラインで呼び出すことはできません。 Cond VWの場合 これはテストしCondます。条件が真の場合、スレッドポインターを行番号Vに移動しますW。それ以外の場合は、行番号に移動します。その行はすぐに実行されます。 条件文をすることができX=Y、X<Y、!X、または?X: X=Y 2つのラインが同じタイプで同じボットのものであるかどうかをテストするか、2つの値が同じ量に等しいかどうかをテストします。 X<Yの値Xが未満かどうかをテストしますY。 !X変数または行Xがロックされているかどうかをテストします(ロックされている場合はtrueを返します) ?X 指定された変数にスレッドが接続されているかどうかをテストします …

9
無人島での宝探し
前書き あなたは何人かの召使と無人島に取り残され、宝物を探しています。長く検索するほど、より多くの宝物が見つかります。検索する人が少ないほど、一人一人が見つけます。 供給が限られているため、リーダーは、グループの4分の1までの数人が毎晩死ぬことを決定しました。彼は、事前に特定の日に死亡する人数を正確に誰にも伝えないことにしました。 あなたは5人の小さなグループを管理しており、彼らはあなたのために宝物を見つけるためにキャンプから出なければなりません。 目的 この競技の目的は、できるだけ多くの宝物を集めることです。召使いがキャンプに戻ろうとしないすべてのターンで、彼らは一定数の宝物を見つけます。あなたの召使は、異なる時間にキャンプに戻るかもしれません。 労働者が宝物を探すために外に出るたびに、労働者は宝物を見つけ1+Rます。ここRで、既にキャンプに戻っている(すべてのボットのうち)労働者の数です。死んだボットはこの計算に含まれません。 それぞれの日の開始時に、乱数(nから)2には、max(3, floor(num_live_players/4))選択されます。(1日目の10人の選手のために、これはある2にmax(3,50/4)=121日目の20人の選手のために、これは次のようになります。2にmax(3,100/4)=25この番号は、その日のために死ぬために残される選手の数を表します。)、およびプログラムに渡されることはありません。 使用人が最後nに戻る人の一人である場合、彼/彼女は死に、彼/彼女が見つけた宝をあなたの所持品に移すことができなくなります。さらに、召使は残りの冒険のために宝探しに参加することはできません。 最終スコアは、冒険(コントローラーの実行)ごとに獲得した宝の平均量です。 同じスロットに空きスロットがあるよりも多くの人がキャンプに戻ることを試みた場合、誰が入場し、誰が死亡するかは乱数によって決まります。 この島での日の出から日没までの1日は30ターン続きます。夜には多くの危険な動物がいるため、日没までに帰れないということは、キャンプに入れないことを意味します。 入出力 シミュレーション全体でプログラムを実行する必要があります。 シミュレーションの開始時にINDEX Iが入力されIます。これは、ボットのインデックスです(このインデックスは1からカウントされます)。 それぞれの日の開始時に、START_DAY D/Nあなたのプログラムに入力されますD(から始まる日番号がある1)、およびNに等しくmax(3, floor(num_live_players/4))、その特定の日に死ぬことがあり、人々の最大数です。 各ターンの開始時に、START_TURN Tがプログラムに入力されます。ここTで、ターン番号(から始まる1)です。 プログラムはこれを受け取ると、使用人の動きのリストをコンマで区切って応答する必要があります。 有効な動きは次のとおりです。 R:キャンプに戻りましょう。 S:宝物を探し続けてください。 N:使用人はすでに死んでいるか、キャンプにいます。 無効な動きを入力するとS、ボットが生きていてキャンプにいないと解釈されNます。 各ターンの終わりに、文字列がプログラムに渡されます: END_TURN [Turn #] [Bot 1 Moves] [Bot 2 Moves] ... 各ボットの使用人の動きはカンマで区切られています。 これらの動きは次のいずれかです。 R:そのターンにキャンプに戻りました。 r:そのターンにキャンプに戻ることができませんでした。 S:まだ宝を探しています。 D:前のターンで死亡しました。 N:すでにキャンプに戻っています。 ボットとサーバントは、シミュレーション全体を通して同じ順序のままです。 例えば: INDEX 2 …

2
BlackJack KOTHコンテスト
ブラックジャック 元のKOTHチャレンジに取り組んでいたので、別のチャレンジを思いつきました。私にとって、これらのAIチャレンジの楽しみは、非常にシンプルなゲームを微妙にプレイする比較的シンプルなボットを改良することです。カードゲームの確率的性質のため、ブラックジャックはTPDと同様に興味深いKOTHゲームになる可能性があると思います。 すべてのルールは、このウェブサイトのBlackJack with shoesの説明に基づいています カードとデッキに関する規則 ボットは4人の競技者と1人のディーラーのテーブルでプレーします 1つの靴(シャッフルデッキ)は、すべてのプレイヤーとディーラーによって共有されます使い果たされるまで、その時点で新しいランダムにシャッフルされたデッキが追加され、プレイが続行されます。ボットは(この時点では)この新しいデッキの追加について通知されません。この機能の欠如が十分な苦痛/トラブルを引き起こす場合、そのような通知は追加されるかもしれません。 ラウンドごとに10のバイインがあり、カードは無料です パーフェクト/理想的なハンドのスコアは21です すべてのフェイスカードの値は10です すべての数字カードはその価値があります エースは11または1の価値があります。これは、ボットではなくフレームワークによって自動的に処理されます。 あたりとしてのルール、すべてのプレイヤーのカードがフェイスアップを配らと表示されています。ディーラーのカードの1つは裏向きで、もう1つは表向きです。 得点 エースを11として使用する21を超えるスコアは、エースの値を1に強制的に下げます。 21を超えるスコアは、ボットを「バスト」する21のしきい値より下に強制することはできません。 ディーラー ディーラーは彼がバストするまで引きます、または17 点を超えた時点で、彼は立つことを強制されます ベットとチップ 各ラウンドの開始時に、バイイン10のは、そう、最低があり、充電されている株式 10のは、最小賭け 1のNOTE -賭けは賭けの引数の絶対値であるので、気にしないでください負の賭けをしようとしています。 バイインを買う余裕のないボットはコンテストから除外されます 賭けをするとき、ボットは持っているチップよりも多く賭けることはできません 賭けが可能であれば、賭けたチップはボットから即座に取り除かれ、賭け金に追加されます ベットに勝つと、ボットに2xチップがベットされます。ただし、ボットのチップからベットが差し引かれるため、ボットは偶数になり、ベットの1倍になります。 ボットはディーラーのスコアよりもスコアが大きい場合にのみベットに勝ちます ゲームプレイ内訳 片手 ゲームが開始されると、各プレーヤーは1枚のカードを繰り返し配られ、チップから10ドルのバイイン料金/最小ベットが差し引かれます。 ディーラーが描く 2回目のパスが行われ、別のカードがすべてのプレイヤーに配られます。 ディーラーが描く 次に、(それらが配られたのと同じ順序で)各ボットは、「プログラマインタフェース」セクションで説明したように実行されなければならない行動を起こすか、立っています。ベットは動きと見なされます。ベットがボットのさらなる移動能力に影響しないことに注意してください。ベットしてからカードを引くことは非常に可能であり、複数のカードを引いて、立っている前にそれらをベットすることもできます。 すべてのボットが破壊または立ち上がると、ディーラーは17のしきい値までプレイします ボットのスコアはディーラーのスコアと比較され、ベットは勝ち負けになります ワンラウンド 5つのハンドを構成すると見なされます。ハンド間では、競技者のリストがソートされてプレーヤーが削除され、さらに処理されて、すべてのボットが同じ数のハンドをプレイするようにします(エントリ数が4つのボットテーブル間で均等に分割されないという事実の規定) )。 プログラマーのインターフェースと法的動き CardSharkファイルに記載されているとおり: # DOCUMENTATION # INPUT SPECIFICATION # …

2
KOTH:ヒットアンドサンク
前書き 5回目のKOTHでは、よく知られているBattleshipに基づいたいくつかの工夫を加えたチャレンジを紹介します。指揮する艦船は1つだけで、その種類は5つの「伝統的な」クラスから選択できますが、移動を含め、各ターンで複数のアクションを実行できます。これはFFA(Free For All)としてプレイされ、あなたの目標は最後の船に立つことです。 原理 ゲームはターンベースです。ゲームの開始時に、船のクラスを選択する必要があります。その後、各ターンで、プレイヤーは自分の船に応じていくつかのアクションを実行できます。 ゲームは2Dグリッド(X、Y)で行われ、その側はこのように定義され X = 30 + numberOfPlayer Y = 30 + numberOfPlayer ます。各船の開始位置はランダムです。 プレイ順は毎ターンランダム化され、「キュー」での自分の位置もプレイヤーの数もわかりません。ゲームは100ターン、または1隻の船が生き残るまで続きます。 敵の船にぶつかったり、ぶつかったりするたびに、ポイントを獲得したり失ったりします。最高スコアのプレイヤーが勝ちます。賞金は勝者に授与されます(参加者の数に応じた値)。 コントローラはコマンド引数を介して入力を提供し、プログラムは標準出力を介して出力する必要があります。 構文 最初のターン プログラムは引数なしで1回呼び出されます。船を選択するには、1〜5の整数を含める必要があります。 1:駆逐艦[長さ:2、移動/ターン:3、ショット/ターン:1、射程:9、地雷:4] スキル:自由船の回転(クールダウンなし) 2:潜水艦[長さ:3、移動/ターン:2、ショット/ターン:1、範囲:5、地雷:4] スキル:プランジ/サーフェス(出力を参照)。水中では、「移動」アクションのみを使用でき、スキャンでのみ表示できます。あなたはショットでヒットすることはできませんが、地雷からダメージを受けることができます。 3:巡洋艦[長さ:3、移動/ターン:1、ショット/ターン:2、射程:9、地雷:2] スキル:修理可能(出力を参照) 4:戦艦[長さ:4、移動/ターン:1、ショット/ターン:3、範囲:7、地雷:1] スキル:シールド可能(出力を参照) 5:キャリア[長さ:5、移動/ターン:1、ショット/ターン:1、範囲:7、地雷:3] スキル:ショットはターゲットにAOE(領域の範囲)ダメージを与えます(1範囲のスプラッシュダメージ)。ターゲットがショットでヒットした場合、この船の最大2つのセルも損傷を受けます。 ターン 入力 プログラムが呼び出されるたびに、次の形式の引数を受け取ります。 Round;YourPlayerId;X,Y,Direction;Hull;Moves,Shots,Mines,Cooldown;Hits,Sunken,Damage;Underwater,Shield,Scan;Map ラウンドは1から始まります。 入力例 1;8;1,12,0;111;1,2,2,0;0,0,0;0,0,0;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXXXX.......UUUUUUUUXXXX.......UUUUUUUUXXXX.......UUUUUUUUXXXX.......UUUUUUUUXXXX.......UUUUUUUUXXXX.O.....UUUUUUUUXXXX.O.....UUUUUUUUXXXX.O.....UUUUUUUUXXXX.......UUUUUUUUXXXX.......UUUUUUUUXXXX.......UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ここでは、それは第1ラウンドであり、プレイヤー8です。 あなたの船は(X = 1、Y = 12)に位置し、方向は上(0 =上、1 =右、2 =下、3 …

19
KOTH-ロードされたRPS
コンテストが恒久的に開催されました-2017年8月10日更新 2017年6月5日に勝者を宣言しましたが(勝者はベストアンサーとして保持されます)、新しいボットを獲得し、結果を更新します。 6月5日の結果 おめでとうuser1502040 同点がないため、勝った試合の割合のみを表示します。 Statistician2-95.7% Fitter-89.1% Nash-83.9% Weigher-79.9% ExpectedBayes-76.4% AntiRepeater-72.1% Yggdrasil-65.0% AntiGreedy-64.1% Reactor-59.9% NotHungry-57.3% NashBot-55.1% Blodsocer-48.6% BestOfBothWorlds-48.4% GoodWinning-43.9% Rockstar-40.5% ArtsyChild-40.4% Assassin-38.1 % WeightedRandom-37.7% Ensemble-37.4% UseOpponents-36.4% GreedyPsychologist-36.3% TheMessenger-33.9% Copycat-31.4% Greedy-28.3% SomewhatHungry-27.6% AntiAntiGreedy-21.0% Cycler-20.3% Swap-19.8% RandomBot-16.2% 各ペアの結果のグリッドでGoogleスプレッドシートを作成しました:https : //docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit?usp=sharing ペトリのジレンマのおかげで、このキングオブザヒルに対応できるようになりました。 ゲーム ゲームは、ひねりを加えたシンプルな「じゃんけん」です。試合中に勝利が増えるごとにポイントが獲得されます(R、P、またはSがロードされます)。 紙がロックを獲得 はさみが紙に勝つ ロックがハサミで優勝 勝者は、自分のプレーの負荷と同数のポイントを獲得します。 敗者はプレイの負荷を1増やします。 同点の場合、各プレイヤーはプレイの負荷を0.5ずつ増やします。 100回プレイした後、より多くのポイントを持つ方が勝者です。 例:P1には負荷[10,11,12](じゃんけん)とP2 [7,8,9]があります。P1がRをプレイし、P2がPをプレイします。P2が勝ち、8ポイントを獲得します。P1負荷は[11,11,12]になり、P2負荷は同じままです。 …

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