अंतिम स्टैंडिंग
+ ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | नाम | स्कोर | WinRate | टाईरेट | उन्मूलन संभावना | + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 1. SarcomaBotMk11 | 0.06333 | 6.13% | 0.41% | [४२ २४ १० 42 ६ ४]% | | 2. वाइजकिबोट | 0.06189 | 5.91% | 0.56% | [५१ १२ 7 १० 51]]% | | 3. स्ट्राइकरबॉट | 0.05984 | 5.78% | 0.41% | [४६ १ [११ 46 ६ ५]% | | 4. PerfectFractionBot | 0.05336 | 5.16% | 0.35% | [४ ९ १२ १४ १० ६ ४]% | | 5. मेहरबानोट | 0.05012 | 4.81% | 0.41% | [५ [१२ 8 57 ६ ६]% | | 6. OgBot | 0.04879 | 4.66% | 0.45% | [५० १५ ९ 50] ५]% | | 7. SnetchBot | 0.04616 | 4.48% | 0.28% | [४१ २ ९ 8 ९ ५ ३]% | | 8. AntiKickBot | 0.04458 | 4.24% | 0.44% | [२० ३ 6 १ 17 १० ६ ६ ४]% | | 9. महबोट | 0.03636 | 3.51% | 0.25% | [[० ३ ४ ४ ३ ३]]% | | 10. मेह 20 बॉट | 0.03421 | 3.30% | 0.23% | [५ 3 १२ 9 57 ९ ३]]% | | 11. GenericBot | 0.03136 | 3.00% | 0.28% | [१ [३ ९ २० ११ ५ ३]% | | 12. HardCodedBot | 0.02891 | 2.75% | 0.29% | [५ 4 २१ ३ ६ ५ ४]% | | 13. गैंगबोट 1 | 0.02797 | 2.64% | 0.32% | [२० ३१ ३५ ६ ३ ३ २]% | | 14. SarcomaBotMk3 | 0.02794 | 2.62% | 0.34% | [१६ १५ ३ 38 १ 16] ४]% | | 15. GangBot0 | 0.02794 | 2.64% | 0.30% | [२० ३१ ३५ ६ ३ ३ २]% | | 16. GangBot2 | 0.02770 | 2.62% | 0.31% | [२० ३१ ३५ ६ ३ ३ २]% | | 17. टाइटटबोट | 0.02740 | 2.63% | 0.21% | [५४ १० १५ १० ५ २ २]% | | 18. माताहारी 2 बोट | 0.02611 | 2.35% | 0.51% | [३ ९ २६ ११ ११ ६ ५]% | | 19. पॉलीबोट | 0.02545 | 2.41% | 0.27% | [53 18 6 13 5 3]% | | 20. SpitballBot | 0.02502 | 2.39% | 0.22% | [[४ १० १ १ ० १]% | | 21. SquareUpBot | 0.02397 | 2.35% | 0.10% | [१० ६० १४ 10 ४ ३]]% | | 22. CautiousGamblerBot2 | 0.02250 | 2.19% | 0.13% | [६० १ [१० ५ ३ ३ १]% | | 23. Bot13 | 0.02205 | 2.15% | 0.11% | [९ ० ९ २ ३ २ १]% | | 24. AggroCalcBot | 0.01892 | 1.75% | 0.29% | [२६ ४ ९ १३ ५ ३ ३]% | | 25. सावधान | 0.01629 | 1.56% | 0.14% | [१५ ४१ २ 27 ११ ४ ४]% | | 26. CoastBotV2 | 0.01413 | 1.40% | 0.02% | [83 12 3 1 0 0]% | | 27. कैलकुलेटिंग बीओटी | 0.01404 | 1.29% | 0.22% | [[९ १ १ १ १ १ १]% | | 28. HalfPunchBot | 0.01241 | 1.15% | 0.18% | [४ 20 २० १३ १२ ५ २]% | | 29. HalflifeS3Bot | हॉप 97 | 1.00% | 0.20% | [[६ ९ ५ ४ २ २]% | | 30. एंटीगैंगबोट | 0.00816 | 0.76% | 0.11% | [९ ४ १ १ १ १ १ १]% | | 31. ज्यामितीय आधार | 0.00776 | 0.74% | 0.07% | [१ ९ ४६ २५ 19 २ १]% | | 32. GuessBot | 0.00719 | 0.05% | 1.34% | [६५ १ [४ ६ ५ ३]% | | 33. बाउंडेड्रैंडैमिकबोट | 0.00622 | 0.60% | 0.05% | [४२ ३ ९ १२ ५ २ ०]% | | 34. स्प्रेडरबॉट | 0.00549 | 0.54% | 0.02% | [३२ ४३ १ ९ ४ १ १]% | | 35. निर्धारक | 0.00529 | 0.45% | 0.16% | [२२ ४१ २० ११ १ ४ २]% | | 36. PercentBot | 0.00377 | 0.38% | 0.00% | [[५ 1 ४ २ १ १ ०]% | | 37. HalvsiestBot | 0.00337 | 0.29% | 0.08% | [३२ ४३ १५ ६ २ २ १]% | | 38. GetAlongBot | 0.00330 | 0.33% | 0.01% | [[६ १ [४ १ १ ०]% | | 39. बैंडडॉट | 0.00297 | 0.29% | 0.02% | [[६ ९ १० ४ १ १ ०]% | | 40. TENaciousBot | 0.00287 | 0.29% | 0.00% | [94 4 1 0 0 0]% | | 41. अस्तित्ववाद | 0.00275 | 0.25% | 0.04% | [92 6 1 0 0 0]% | | 42. रैंडमबॉट | 0.00170 | 0.13% | 0.07% | [४२ ३६ १४ ५ २ १]% | | 43. AggressiveBoundedRandomBotV2 | 0.00165 | 0.14% | 0.06% | [[४६ ३४ ९ २ २ १]% | | 44. ब्लड बैंक | 0.00155 | 0.01% | 0.30% | [६५ २ 1 ५ १ १ १ ०]% | | 45. OutBidBot | 0.00155 | 0.03% | 0.25% | [६५ ६ २१ ६ १ १]% | | 46. BoxBot | 0.00148 | 0.10% | 0.09% | [१० ५१ ३३ ५ ५ १ १]% | | 47. LastBot | 0.00116 | 0.08% | 0.07% | [[६ ६ १६ २ २ १ ०]% | | 48. UpYoursBot | 0.00088 | 0.07% | 0.03% | [३ [४० १ 1 १ ५ १ १ ०]% | | 49. एवरबोट | 0.00073 | 0.06% | 0.03% | [[४ ३ १० १० २ ०]% | | 50. PatheticBot | 0.00016 | 0.01% | 0.02% | [94 0 5 1 0 0]% | | 51. ओवरफ़ीडबॉट | 0.00014 | 0.01% | 0.00% | [५ [४० २ ० ० ०]% | | 52. रॉबीबोट | 0.00009 | 0.01% | 0.00% | [३२ ४१ २४ २ ० ०]% | | 53. WorstCaseBot | 0.00002 | 0.00% | 0.00% | [४ [१ २३ २ २ ०]% | | 54. स्मार्टबॉट | 0.00002 | 0.00% | 0.00% | [४४ ५१ ५ ० ०]% | | 55. AAAAUpYoursBot | 0.00000 | 0.00% | 0.00% | [४० ५ [२ ० ० ०]% | | 56. किकबनबोट | 0.00000 | 0.00% | 0.00% | [67 32 1 0 0 0]% | | 57. OneShotBot | 0.00000 | 0.00% | 0.00% | [२ ९ ३ ३ ० ०]]% | | 58. किकबॉट | 0.00000 | 0.00% | 0.00% | [१०० ० ० ० ०]]% | | 59. KamikazeBot | 0.00000 | 0.00% | 0.00% | [१०० ० ० ० ०]]% | | 60. मीनकबॉट | 0.00000 | 0.00% | 0.00% | [१०० ० ० ० ०]]% | + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- +
सभी के लिए धन्यवाद जिन्होंने भाग लिया, और जीत के लिए @ सारकोमा को बधाई!
नियम:
सभी की शुरुआत 100 hp से होती है। प्रत्येक राउंड, 2 खिलाड़ियों को प्रतियोगियों के पूल से यादृच्छिक रूप से चुना जाता है जिन्होंने अभी तक उस दौर में प्रतिस्पर्धा नहीं की है। दोनों खिलाड़ी 0 और उनके वर्तमान hp के बीच एक संख्या चुनते हैं, और एक ही समय में उन संख्याओं को प्रकट करते हैं। जिस खिलाड़ी ने निचले नंबर को चुना वह तुरंत मर जाता है। अन्य खिलाड़ी अपने शेष एचपी से अपने चुने हुए नंबर को घटाते हैं और अगले दौर में जाते हैं।
टूर्नामेंट इस तरह काम करता है:
प्रतियोगियों के ब्रैकेट से, 2 को यादृच्छिक पर चुना जाता है। उनका सामना होता है, और उनमें से एक या दोनों की मृत्यु हो जाती है। एक खिलाड़ी की मृत्यु हो जाती है:
- वे अपने प्रतिद्वंद्वी की तुलना में एक छोटी संख्या चुनते हैं
- उनका hp शून्य से नीचे या नीचे चला जाता है
- वे अपने प्रतिद्वंद्वी के साथ तीन बार टाई करते हैं
संबंधों के मामले में, दोनों खिलाड़ी केवल 3 बार तक नए नंबर उत्पन्न करते हैं। फेसऑफ़ के बाद, उत्तरजीवी (यदि कोई हो) को अगले दौर के लिए पूल में ले जाया जाता है, और प्रक्रिया तब तक दोहराती है जब तक कि हमने मौजूदा गोल पूल को समाप्त नहीं कर दिया। यदि पूल में एक विषम संख्या है, तो विषम एक अगले दौर में मुफ्त में चलती है।
आपका कार्य 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. पर रीसेट हो जाएगा। हां, खुद को मारना संभव है। आपके फ़ंक्शन को रूलेबोट वर्ग के किसी भी ऑब्जेक्ट के किसी भी सदस्य तक पहुंचने या संशोधित करने का प्रयास नहीं करना चाहिए। आपको भविष्य में अतिरिक्त बॉट्स की परवाह किए बिना अपने प्रतिद्वंद्वी की पहचान करने की अनुमति नहीं है। स्टैक का निरीक्षण करने की अनुमति तब तक दी जाती है जब तक यह सैद्धांतिक रूप से संभव है कि एक से अधिक विशिष्ट प्रतिद्वंद्वी आपके द्वारा चमकने वाली जानकारी का उत्पादन कर सकते थे, भले ही केवल एक बॉट वर्तमान में मौजूद हो। यानी, आप केवल स्टैक के माध्यम से यह देखने के लिए नहीं पढ़ सकते हैं कि कौन से शत्रु फ़ंक्शन को बुलाया गया था।
इन नियमों के तहत यह संभव है कि कोई विजेता न हो, और अंतिम दो प्रतियोगी एक दूसरे को मार दें। उस स्थिति में दोनों फाइनलिस्ट को आधा अंक मिलता है।
यह मेरी पहली प्रोग्रामिंग पहेली कोशिश है, इसलिए आलोचकों का स्वागत है!