最终排名
+ ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 姓名| 分数| WinRate | TieRate | 消除概率| + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 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.肉瘤BotMk3 | 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.小心| 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中减去他们选择的数字,然后继续下一轮。
比赛的工作方式如下:
从参赛者的括号中随机选择2个。他们对峙,一个或两个都死了。如果玩家死亡,则:
- 他们选择的数字小于对手的数字
- 他们的马力降至或低于零
- 他们与对手连续三连胜
在平局的情况下,两个玩家都只产生新的数字,最多3次。对抗之后,幸存者(如果有的话)被移至下一轮的池中,并且该过程重复进行,直到我们耗尽了当前的池。如果池中有一个奇数,则奇数一个免费进入下一轮。
您的任务是在python2.7中编写一个函数,该函数将您当前hp
的价格history
,对手出价的列表以及一个整数(ties
该整数告诉您已经与当前对手绑定多少次)作为输入,而一个整数则告诉您如何还有很多机器人alive
(包括您在内),还有一个整数,列出start
了比赛中机器人的数量。请注意,历史记录不包括联系。该函数必须返回0到当前总hp之间的整数。下面显示了一些忽略联系的简单示例:
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类的任何对象的任何成员。无论将来是否有其他机器人,您都不得采取任何能够明确识别对手的动作。只要在理论上有可能有多个不同的对手可以从中收集到您所收集的信息,就可以检查堆栈,即使当前仅存在一个可以进行自动检测的机器人也可以。即,您不能只读取堆栈以查看调用了哪个敌方函数。
在这些规则下,可能没有获胜者,而最后两名参赛者会互相残杀。在这种情况下,两名决赛入围者各得半分。
这是我第一次编程难题,欢迎提出批评!
控制器可以在这里找到。