Bảng xếp hạng cuối cùng
+ ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | Tên | Điểm | WinRate | Cà vạt | Xác suất loại bỏ | + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 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. Tiền đạo | 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. HardCodingBot | 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,02394 | 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. Thận trọngBot | 0,01629 | 1,56% | 0,14% | [15 41 27 11 4 1]% | | 26. Bờ biểnBotV2 | 0,01113 | 1,40% | 0,02% | [83 12 3 1 0 0]% | | 27. Tính toánBot | 0,01404 | 1,29% | 0,22% | [87 9 1 1 1 1]% | | 28. HalfPunchBot | 0,0141 | 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. Hình họcBot | 0,00776 | 0,74% | 0,07% | [19 46 25 7 2 1]% | | 32. Đoán | 0,00719 | 0,05% | 1,34% | [65 17 4 6 5 3]% | | 33. Bị ràng buộcRandomBot | 0,00622 | 0,60% | 0,05% | [42 39 12 5 2 0]% | | 34. Máy rải 0,00549 | 0,54% | 0,02% | [32 43 19 4 1 0]% | | 35. Xác định | 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,0037 | 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. TENkishBot | 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. Ag xâmiveBoundedRandomBotV2 | 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. Bệnh hoạn | 0,00016 | 0,01% | 0,02% | [94 0 5 1 0 0]% | | 51. OverfitedBot | 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]% | + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- +
Cảm ơn tất cả mọi người đã tham gia và chúc mừng @Sarcoma đã giành chiến thắng!
Quy tắc:
Mọi người bắt đầu với 100 hp. Mỗi vòng, 2 người chơi được chọn ngẫu nhiên từ nhóm thí sinh chưa tham gia vòng thi đó. Cả hai người chơi chọn một số từ 0 đến hp hiện tại của họ và tiết lộ những số đó cùng một lúc. Người chơi chọn số thấp hơn ngay lập tức chết. Người chơi khác trừ số đã chọn của họ từ hp còn lại của họ và đi tiếp vào vòng tiếp theo.
Giải đấu hoạt động như thế này:
Từ khung của thí sinh, 2 được chọn ngẫu nhiên. Họ đối mặt và một hoặc cả hai đều chết. Một người chơi chết nếu:
- Họ chọn một số nhỏ hơn so với đối thủ của họ
- HP của họ giảm xuống hoặc dưới 0
- Họ buộc ba lần liên tiếp với đối thủ của họ
Trong trường hợp quan hệ, cả hai người chơi chỉ cần tạo số mới, tối đa 3 lần. Sau cuộc đối mặt, người sống sót (nếu có) được chuyển đến bể bơi cho vòng tiếp theo, và quá trình lặp lại cho đến khi chúng ta cạn kiệt bể tròn hiện tại. Nếu có một số lẻ trong nhóm, thì số lẻ đó sẽ chuyển sang vòng tiếp theo miễn phí.
Nhiệm vụ của bạn là viết một hàm trong python2.7 , lấy đầu vào hiện tại của bạn hp
, danh sách giá thầu của đối thủ history
và một số nguyên ties
cho bạn biết bạn đã liên kết với đối thủ hiện tại bao nhiêu lần và một số nguyên cho bạn biết nhiều bot vẫn còn alive
(bao gồm cả bạn) và một số nguyên liệt kê số lượng bot tại start
giải đấu. Lưu ý rằng lịch sử không bao gồm các mối quan hệ. Hàm phải trả về một số nguyên từ 0 đến tổng hp hiện tại của bạn. Một vài ví dụ đơn giản, bỏ qua các mối quan hệ, được hiển thị dưới đây:
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)
Nếu chức năng của bạn trả về một số lớn hơn hp của bạn, nó sẽ được đặt lại về 0. Có, có thể tự sát. Chức năng của bạn không được cố gắng truy cập hoặc sửa đổi bất kỳ thành viên của bất kỳ đối tượng nào của lớp RouletteBot. Bạn không được phép thực hiện bất kỳ hành động nào xác định rõ ràng đối thủ của bạn bất kể các bot bổ sung trong tương lai. Việc kiểm tra ngăn xếp được cho phép miễn là về mặt lý thuyết có thể có nhiều hơn một đối thủ khác biệt có thể tạo ra thông tin mà bạn lượm lặt được từ nó, ngay cả khi chỉ có một bot hiện có. tức là, bạn không thể chỉ đọc qua ngăn xếp để xem hàm kẻ thù nào được gọi.
Theo các quy tắc này, có thể không có người chiến thắng và hai thí sinh cuối cùng giết nhau. Trong trường hợp đó cả hai người vào chung kết nhận được một nửa điểm mỗi.
Đây là nỗ lực giải đố lập trình đầu tiên của tôi, vì vậy các nhà phê bình đều được chào đón!
Bộ điều khiển có thể được tìm thấy ở đây .