このキングオブザヒルチャレンジは、ゲームショーWeakest Linkに基づいています。ショーに不慣れな人のために、このチャレンジの核心はあなたが投票する人を扱っています:
- 他のプレイヤーがあなたより賢い場合、ポットを獲得する可能性は低くなります。
- 他のプレイヤーがあなたよりも愚かである場合、獲得するポットが少なくなります。
各ラウンドの開始時に、ポットは$ 0から始まります。9人のプレーヤーのグループが形成され、各プレーヤーには1〜9の一意のスマートネスが与えられます。
各ターンの開始時に、Pot += Smartness
まだラウンドにいる各プレイヤーに対して。次に、プレイヤーは削除したいプレイヤーに投票します。最も投票数の多いプレイヤーが削除されます。同点の場合、よりスマートなプレーヤーが保持されます。
ラウンドに残っているプレイヤーが2人だけの場合、彼らは知恵の戦いで対決します。プレイヤーが勝つ可能性はSmartness/(Smartness+OpponentSmartness)
です。その後、勝者はポット全体を受け取ります。
ゲーム終了時に最も多くのお金を受け取ったプレイヤーが勝ちます。
入出力
ターンごとに、現在の対戦相手のリストを受け取ります。Playerクラスの関数を介して、ラウンドのスマートさとすべてのプレイヤーの投票履歴全体にアクセスできます。
出力として、投票したいプレーヤーを表す(彼らのスマートさを表す)単一の整数を返す必要があります。自分の投票は許可されています(ただし、推奨されません)。
9ラウンドは、すべてのプレイヤーが少なくとも1000 10000ラウンドをプレイし、すべてのプレイヤーが同じラウンド数でプレイするまで繰り返されます。
ここでコントローラーを見つけることができます:https : //github.com/nathanmerrill/WeakestLink
プレーヤーを作成するには、Playerクラスを拡張し、プレーヤーをPlayerFactoryクラスに追加する必要があります。クラスは次のルールに従う必要があります。
他のプレイヤー(同じタイプの他のプレイヤーを含む)との通信または干渉は固く禁じられています。
リフレクションと静的変数(定数を除く)は許可されていません。
ランダム性を使用する場合
getRandom()
は、Playerクラスで関数を提供しています。これを使用して、シミュレーションを決定的にすることができます。
Playerクラスには、データに簡単にアクセスするための多くの関数を提供しています。Githubでオンラインで見つけることができます。プレーヤーは新しいラウンドごとにインスタンス化されます。「ダム/自殺」プレイヤーは許可されます(同じ戦略を持つプレイヤーは許可されません)。
スコア
377195 WeakestLink.Players.PrudentSniper
362413 WeakestLink.Players.Sniper
353082 WeakestLink.Players.VengefulSniper
347574 WeakestLink.Players.AntiExtremist
298006 WeakestLink.Players.BobPlayer
273867 WeakestLink.Players.MedianPlayer
247881 WeakestLink.Players.TheCult
240425 WeakestLink.Players.Leech
235480 WeakestLink.Players.SniperAide
223128 WeakestLink.Players.Guard
220760 WeakestLink.Players.Anarchist
216839 WeakestLink.Players.RevengePlayer
215099 WeakestLink.Players.IndependentVoter
213883 WeakestLink.Players.SniperKiller
210653 WeakestLink.Players.MaxPlayer
210262 WeakestLink.Players.Bandwagon
209956 WeakestLink.Players.MeanPlayer
208799 WeakestLink.Players.Coward
207686 WeakestLink.Players.Spy
204335 WeakestLink.Players.Hero
203957 WeakestLink.Players.MiddleMan
198535 WeakestLink.Players.MinPlayer
197589 WeakestLink.Players.FixatedPlayer
197478 WeakestLink.Players.HighOrLowNotSelf
181484 WeakestLink.Players.RandomPlayer
165160 WeakestLink.Players.BridgeBurner
src\WeakestLink
私はjavac Game\*.java Players\*.java Main.java
コンパイルしjava -cp .. WeakestLink.Main
て実行するために使用しました。