物語
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,1
P2になりました1,2
。
片方の手が1001本以上の指に達すると、その手は外に出ます。その後、(自分のターンで)ハンドを手にしたプレイヤーは「スプリット」できます。分割とは、中にある手を取り、指の量を半分に切り上げ(切り上げ)、それらの指をもう一方の手に渡して戻すことです。
EX
P1:1000,2
P2 7,7
。P2[0]
ヒットP1[0]
。スコアはP1:0,2
P2 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万)ラウンドで終了しない場合、ゲームは終了し、どちらのボットも勝ちません。
コントローラーは、永久に移動することから保護されていませんが、不要なオーバーヘッドは強く眉をひそめます。
My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!
それでは、KoTHの計算を行うのは私たちですか?