最終順位
+ ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 名前| スコア| WinRate | タイレート| 除去確率| + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 1. SarcomaBotMk11 | 0.06333 | 6.13%| 0.41%| [42 24 10 8 6 4]%| | 2. WiseKickBot | 0.06189 | 5.91%| 0.56%| [51 12 7 10 7 6]%| | 3. StrikerBot | 0.05984 | 5.78%| 0.41%| [46 18 11 8 6 5]%| | 4. PerfectFractionBot | 0.05336 | 5.16%| 0.35%| [49 12 14 10 6 4]%| | 5. MehRanBot | 0.05012 | 4.81%| 0.41%| [57 12 8 7 6 5]%| | 6. OgBot | 0.04879 | 4.66%| 0.45%| [50 15 9 8 7 5]%| | 7. SnetchBot | 0.04616 | 4.48%| 0.28%| [41 29 8 9 5 3]%| | 8. AntiKickBot | 0.04458 | 4.24%| 0.44%| [20 38 17 10 6 4]%| | 9. MehBot | 0.03636 | 3.51%| 0.25%| [80 3 4 4 3 3]%| | 10. Meh20Bot | 0.03421 | 3.30%| 0.23%| [57 12 8 7 9 3]%| | 11. GenericBot | 0.03136 | 3.00%| 0.28%| [18 39 20 11 5 3]%| | 12. HardCodedBot | 0.02891 | 2.75%| 0.29%| [58 21 3 6 5 4]%| | 13. GangBot1 | 0.02797 | 2.64%| 0.32%| [20 31 35 6 3 2]%| | 14. SarcomaBotMk3 | 0.02794 | 2.62%| 0.34%| [16 15 38 17 7 4]%| | 15. GangBot0 | 0.02794 | 2.64%| 0.30%| [20 31 35 6 3 2]%| | 16. GangBot2 | 0.02770 | 2.62%| 0.31%| [20 31 35 6 3 2]%| | 17. TitTatBot | 0.02740 | 2.63%| 0.21%| [54 10 15 10 5 2]%| | 18. MataHari2Bot | 0.02611 | 2.35%| 0.51%| [39 26 11 11 6 5]%| | 19. PolyBot | 0.02545 | 2.41%| 0.27%| [53 18 6 13 5 3]%| | 20. SpitballBot | 0.02502 | 2.39%| 0.22%| [84 10 1 1 0 1]%| | 21. SquareUpBot | 0.02397 | 2.35%| 0.10%| [10 60 14 7 4 3]%| | 22. CautiousGamblerBot2 | 0.02250 | 2.19%| 0.13%| [60 18 10 5 3 1]%| | 23. Bot13 | 0.02205 | 2.15%| 0.11%| [90 0 2 3 2 1]%| | 24. AggroCalcBot | 0.01892 | 1.75%| 0.29%| [26 49 13 5 3 3]%| | 25. CautiousBot | 0.01629 | 1.56%| 0.14%| [15 41 27 11 4 1]%| | 26. CoastBotV2 | 0.01413 | 1.40%| 0.02%| [83 12 3 1 0 0]%| | 27. CalculatingBot | 0.01404 | 1.29%| 0.22%| [87 9 1 1 1 1]%| | 28. HalfPunchBot | 0.01241 | 1.15%| 0.18%| [47 20 13 12 5 2]%| | 29. HalflifeS3Bot | 0.01097 | 1.00%| 0.20%| [76 9 5 4 2 2]%| | 30. AntiGangBot | 0.00816 | 0.76%| 0.11%| [94 1 1 1 1 1]%| | 31. GeometricBot | 0.00776 | 0.74%| 0.07%| [19 46 25 7 2 1]%| | 32. GuessBot | 0.00719 | 0.05%| 1.34%| [65 17 4 6 5 3]%| | 33. BoundedRandomBot | 0.00622 | 0.60%| 0.05%| [42 39 12 5 2 0]%| | 34. SpreaderBot | 0.00549 | 0.54%| 0.02%| [32 43 19 4 1 0]%| | 35. DeterminBot | 0.00529 | 0.45%| 0.16%| [22 41 20 11 4 2]%| | 36. PercentBot | 0.00377 | 0.38%| 0.00%| [85 8 4 2 1 0]%| | 37. HalvsiestBot | 0.00337 | 0.29%| 0.08%| [32 43 15 6 2 1]%| | 38. GetAlongBot | 0.00330 | 0.33%| 0.01%| [76 18 4 1 0 0]%| | 39. BandaidBot | 0.00297 | 0.29%| 0.02%| [76 9 10 4 1 0]%| | 40. TENaciousBot | 0.00287 | 0.29%| 0.00%| [94 4 1 0 0 0]%| | 41. SurvivalistBot | 0.00275 | 0.25%| 0.04%| [92 6 1 0 0 0]%| | 42. RandomBot | 0.00170 | 0.13%| 0.07%| [42 36 14 5 2 1]%| | 43. AggressiveBoundedRandomBotV2 | 0.00165 | 0.14%| 0.06%| [8 46 34 9 2 1]%| | 44. BloodBot | 0.00155 | 0.01%| 0.30%| [65 28 5 1 1 0]%| | 45. OutBidBot | 0.00155 | 0.03%| 0.25%| [65 6 21 6 1 1]%| | 46. BoxBot | 0.00148 | 0.10%| 0.09%| [10 51 33 5 1 1]%| | 47. LastBot | 0.00116 | 0.08%| 0.07%| [74 6 16 2 1 0]%| | 48. UpYoursBot | 0.00088 | 0.07%| 0.03%| [37 40 17 5 1 0]%| | 49. AverageBot | 0.00073 | 0.06%| 0.03%| [74 3 10 10 2 0]%| | 50. PatheticBot | 0.00016 | 0.01%| 0.02%| [94 0 5 1 0 0]%| | 51. OverfittedBot | 0.00014 | 0.01%| 0.00%| [58 40 2 0 0 0]%| | 52. RobbieBot | 0.00009 | 0.01%| 0.00%| [32 41 24 2 0 0]%| | 53. WorstCaseBot | 0.00002 | 0.00%| 0.00%| [4 71 23 2 0 0]%| | 54. SmartBot | 0.00002 | 0.00%| 0.00%| [44 51 5 0 0 0]%| | 55. AAAAUpYoursBot | 0.00000 | 0.00%| 0.00%| [40 58 2 0 0 0]%| | 56. KickbanBot | 0.00000 | 0.00%| 0.00%| [67 32 1 0 0 0]%| | 57. OneShotBot | 0.00000 | 0.00%| 0.00%| [2 95 3 0 0 0]%| | 58. KickBot | 0.00000 | 0.00%| 0.00%| [100 0 0 0 0 0]%| | 59. KamikazeBot | 0.00000 | 0.00%| 0.00%| [100 0 0 0 0 0]%| | 60. MeanKickBot | 0.00000 | 0.00%| 0.00%| [100 0 0 0 0 0]%| + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- +
参加してくれたすべての人に感謝し、@ Sarcomaの勝利を祝福します!
ルール:
誰もが100馬力で始まります。各ラウンドでは、そのラウンドにまだ参加していない競技者のプールからランダムに2人のプレイヤーが選択されます。両方のプレイヤーは、0から現在のHPの間の数字を選び、それらの数字を同時に公開します。低い数字を選んだプレイヤーはすぐに死にます。他のプレイヤーは、選択した数を残りのHPから差し引き、次のラウンドに進みます。
トーナメントは次のように機能します。
出場者のブラケットから、2がランダムに選択されます。彼らは直面し、それらの一方または両方が死にます。次の場合、プレイヤーは死亡します。
- 相手の数よりも小さい数を選択します
- HPが0以下になる
- 彼らは相手と3回連続で結びます
同点の場合、両方のプレイヤーが最大3回まで新しい数字を生成します。対決の後、生存者(存在する場合)は次のラウンドのためにプールに移動され、現在のラウンドプールを使い果たすまでプロセスが繰り返されます。プールに奇数がある場合、奇数のうちの1つが次のラウンドに無料で移動します。
あなたの仕事は、関数書くことですpython2.7あなたの電流が入力として受け取りhp
、相手の入札のリストhistory
、および整数ties
あなたはすでにあなたの現在の相手と結ばれた回数を示します、そしてどのように伝える整数多くのボットはまだalive
(あなたを含む)でありstart
、トーナメントでのボットの数をリストした整数です。履歴には関係が含まれないことに注意してください。この関数は、0から現在の合計馬力までの整数を返す必要があります。関係を無視するいくつかの簡単な例を以下に示します。
def last(hp, history, ties, alive, start):
''' Bet a third of your hp at first, then bet your opponent's last bid, if possible '''
if history:
return np.minimum(hp-1, history[-1])
else:
return hp/3
def average(hp, history, ties, alive, start):
''' Bet the average opponent's bid so far, on the assumption that bids will tend downward '''
if history:
num = np.minimum(hp-1, int(np.average(history))+1)
else:
num = hp/2
return num
def random(hp, history, ties, alive, start):
''' DO YOU WANT TO LIVE FOREVER?! '''
return 1 + np.random.randint(0, hp)
関数がhpよりも大きい数値を返す場合、0にリセットされます。はい、自殺することは可能です。関数は、RouletteBotクラスのオブジェクトのメンバーにアクセスまたは変更しようとしてはなりません。将来の追加ボットに関係なく、相手を明確に識別するアクションを実行することはできません。スタックを検査することは、理論的には、1つのボットしか存在しない場合でも、そこから収集した情報を複数の異なる敵が生成できる可能性がある限り許可されます。つまり、スタックを読んで、どの敵機能が呼び出されたかを確認することはできません。
これらのルールの下では、勝者がいない可能性があり、最後の2人の競技者が互いに殺し合っています。その場合、両方のファイナリストはそれぞれ半分のポイントを獲得します。
これは私の最初のプログラミングパズルの試みなので、批評は大歓迎です!
コントローラはここにあります。