सूचना: इस राजा की पहाड़ी चुनौती पूरी हो गई है। इसका मतलब है कि हरे रंग की चेकमार्क, जो C5H8NNO4 को उनकी प्रविष्टि के लिए दी गई है, ऑब्जर्वर को किसी नए उत्तर में नहीं ले जाया जाएगा।
आप अभी भी नई प्रविष्टियाँ जमा कर सकते हैं, लेकिन नए टूर्नामेंटों में देरी हो सकती है क्योंकि मैं अब नई प्रविष्टियों के लिए सक्रिय रूप से जाँच नहीं कर रहा हूँ।
परिचय
इस चुनौती में, आप अंतिम आर्केड समुराई तसलीम अंतिम संस्करण विशेष संस्करण 2.0 एक्स अल्फा ओमेगा टर्बो (या संक्षेप में केवल अंतिम समुराई तसलीम ) शीर्षक से एक आर्केड खेल खेल रहे हैं । आपके विरोधी? प्रोग्रामिंग पहेलियाँ और कोड गोल्फ के अन्य सदस्यों के अलावा कोई नहीं!
जैसा कि आप PPCG आर्केड गेम से उम्मीद कर सकते हैं, आप सीधे अंतिम समुराई शोडाउन नहीं खेलते हैं, बल्कि एक प्रोग्राम लिखें जो आपके लिए गेम खेलेंगे। यह कार्यक्रम एक युगल में एक में अन्य उपयोगकर्ताओं द्वारा प्रस्तुत कार्यक्रमों के खिलाफ लड़ेगा। सबसे कुशल कार्यक्रम को PPCG के अंतिम समुराई का ताज पहनाया जाएगा, और उसे किंवदंती की हरी टिक प्रदान की जाएगी।
खेल विवरण
यह खंड खेल के पीछे यांत्रिकी का वर्णन करता है।
विजय की स्थिति
एक मैच में दो समुराई होते हैं जो एक दूसरे के खिलाफ सामना कर रहे हैं। प्रत्येक समुराई 20 हिट अंक और 1 सम्मान के साथ प्रत्येक मैच शुरू करता है । एक समुराई जीत जाता है यदि उसका प्रतिद्वंद्वी मर चुका है और वह अभी भी जीवित है। ऐसी दो विधियाँ हैं जिनसे समुराई मर सकता है:
- अगर समुराई के हिट पॉइंट्स को 0 पर लाया जाता है, तो वह मर जाएगा।
- यदि एक समुराई अपने स्वयं के सम्मान को 0 से नीचे लाता है , तो वह एक द्वंद्वयुद्ध में बेईमानी से काम करने के लिए देवताओं द्वारा मारा जाएगा।
देवताओं द्वारा मारा जाने के कारण 0 से कम हिट अंक होने पर उच्च प्राथमिकता है, इसलिए ऐसी स्थिति में जहां एक समुराई 0 स्वास्थ्य बिंदुओं पर है और दूसरा -1 सम्मान पर है, 0 स्वास्थ्य बिंदुओं वाला समुराई जीत जाएगा। ऐसी स्थिति में जहां दोनों समुराई -1 सम्मान पर हैं, वे दोनों देवताओं से टकरा जाते हैं और खेल एक ड्रा है।
एक मैच में 500 मोड़ तक होते हैं । यदि सभी 500 पास हो जाते हैं और मैच का फैसला नहीं किया गया है (न ही समुराई की मृत्यु हो गई है), तो देवता ऊब गए और दोनों समुराई पर हमला कर दिया, इस प्रकार ड्रॉ हुआ।
क्रिया
प्रत्येक मोड़ पर, समुराई को निम्न में से एक कार्रवाई करनी चाहिए:
W
समुराई प्रतीक्षा करेगा और कोई कार्रवाई नहीं करेगा। यह उसे शांत दिखता है लेकिन उसे अपने प्रतिद्वंद्वी को हराने में मदद नहीं करता है। यह भी डिफ़ॉल्ट क्रिया है।
B
समुराई अपने प्रतिद्वंद्वी को सम्मानजनक अंदाज में झुकाएंगे। यह देवताओं को प्रसन्न करता है और इस तरह समुराई 1 सम्मान हासिल करेगा। ऑनर आपके समुराई की सफलता के लिए महत्वपूर्ण है क्योंकि ऑनर अनिवार्य रूप से इस गेम के लिए "संसाधन" है - सभी अलग-अलग चलते हैं B
और W
ऑनर को कम कर सकते हैं। इसके अलावा, अगर एक समुराई 7 सम्मान या अधिक हासिल करता है, तो उसे देवताओं की तलवार का उपयोग करने की अनुमति दी जाती है । इसके निहितार्थ नीचे वर्णित हैं।
हालांकि, आपके प्रतिद्वंद्वी को झुकना आपको खुला छोड़ देता है यदि आपका प्रतिद्वंद्वी आपको अपनी तलवार से मारने का फैसला करता है, तो जब आप झुकना चुनते हैं तो सावधान रहें।
G
समुराई एक रक्षात्मक स्थिति में प्रवेश करेगा और किसी भी तलवार हमले के खिलाफ रक्षा करेगा। यह कदम सभी तलवार हमलों को सफलतापूर्वक रोक देगा, यहां तक कि देवताओं की तलवार के साथ भी ।
हालांकि, देवताओं ने एक अत्यधिक रक्षात्मक समुराई पर हमला किया, इसलिए यह कदम 1 सम्मान का उपभोग करेगा अगर तत्काल पूर्ववर्ती मोड़ पर समुराई की कार्रवाई भी रखवाली कर रही थी। यह ऑनर का उपभोग नहीं करता है।
I
समुराई अपने विरोधी को अपनी तलवार से तेज़ तलवार से वार करने का प्रयास करेगा। यदि समुराई के पास 7 सम्मान या अधिक हैं, तो वह अपनी नियमित तलवार के बजाय देवताओं की तलवार का उपयोग करेगा । यह चाल 1 सम्मान की खपत करती है।
त्वरित ड्रॉ एक तेज़ स्ट्राइक है जो धीमी ओवरहेड हमलों को हरा देगा, हालांकि, यह पैरीज़ के खिलाफ हार जाएगा। हड़ताल कनेक्ट होता है इसे सफलतापूर्वक 1 क्षति, या के साथ 2 नुकसान नहीं होगा देवताओं की तलवार ।
P
समुराई आने वाले किसी भी हमले को विफल करने का प्रयास करेगा, फिर अपना हमला शुरू करेगा। यदि समुराई के पास 7 सम्मान या अधिक हैं, तो वह अपनी नियमित तलवार के बजाय देवताओं की तलवार का उपयोग करेगा । यह चाल 1 सम्मान की खपत करती है।
पैरी तेज हमलों के खिलाफ एक अच्छा युद्धाभ्यास है, लेकिन यह धीमी गति से ओवरहेड हमलों से प्रबल होगा। अगर हड़ताल सफलतापूर्वक जुड़ती है तो यह 1 नुकसान या देवताओं की तलवार से 2 नुकसान करेगी ।
O
समुराई अपने प्रतिद्वंद्वी पर धीमी गति से हमला करने की कोशिश करेगा। यदि समुराई में 7 सम्मान या उससे ऊपर है, तो वह अपनी नियमित तलवार के बजाय देवताओं की तलवार का उपयोग करेगा । यह चाल 1 सम्मान की खपत करती है।
ओवरहेड स्ट्राइक परियों पर हावी हो सकती है, लेकिन यह तेज हमलों के खिलाफ हार जाएगी। अगर हड़ताल सफलतापूर्वक जुड़ती है तो यह 1 नुकसान या देवताओं की तलवार से 2 नुकसान करेगी ।
देवताओं की तलवार
ऑनर के साथ एक समुराई जो कि 7 या उससे अधिक है , जो देवताओं की तलवार का उपयोग करने की क्षमता प्राप्त करता है । यदि उसका मान 7 से कम हो जाता है, तो देवताओं की तलवार का उपयोग करने की क्षमता उससे निरस्त हो जाएगी। देवताओं की तलवार 1 के बजाय 2 नुकसान पहुंचाती है।
देवताओं की तलवार एक हड़ताल को तलवार की हार की अनुमति नहीं देती है कि यह आमतौर पर हार नहीं मानेगी। उदाहरण के लिए, देवताओं की तलवार की एक तलवार अभी भी एक साधारण उपरि हड़ताल से हार जाएगी, और देवताओं की एक तलवार त्वरित ड्रा एक साधारण त्वरित ड्रॉ पर हावी नहीं होगी। वास्तव में, देवताओं की तथाकथित तलवार वास्तव में यह सब शक्तिशाली नहीं है - शायद यह देवताओं द्वारा खेला गया एक लौकिक मजाक है ...
इंटरेक्शन टेबल
नीचे दिए गए स्टैक स्निपेट में एक तालिका होती है जो स्पष्ट रूप से उन सभी क्रियाओं के विभिन्न संयोजनों के सभी संभावित परिणामों को सूचीबद्ध करती है जो दो समुराई ले सकते हैं। इसे देखने के लिए, "शो कोड स्निपेट" पर क्लिक करें, फिर "रन कोड स्निपेट" पर क्लिक करें।
कार्यक्रम संचार
टूर्नामेंट को चलाने की सुविधा के लिए, एक नियंत्रक कार्यक्रम "देवताओं" की भूमिका निभाने के लिए लिखा गया था - यह सम्मान और स्वास्थ्य का रिकॉर्ड रखता है और तदनुसार समुराई को मुस्कुराता है। यह खंड बताता है कि आपका कार्यक्रम नियंत्रक कार्यक्रम के साथ कैसे संवाद करेगा।
इनपुट विवरण
कंट्रोलर प्रोग्राम आपके प्रोग्राम को कमांड लाइन से इस तरह बुलाएगा:
<command> <history> <enemy_history> <your_health> <enemy_health> <your_honour> <enemy_honour>
कहा पे:
<command>
अपने प्रोग्राम को चलाने के लिए आवश्यक कमांड है। उदाहरण के लिए, यदि आपका प्रोग्राम किसी फाइल में हैsuper_sentai.pl
, तो कमांड संभवतः हैperl super_sentai.pl
।<history>
आपके द्वारा किए गए चालों का इतिहास है। उदाहरण के लिए,WWBP
इसका मतलब होगा कि आपने दो बार इंतजार किया, एक बार झुका, और एक बार रोया।<enemy_history>
अपने दुश्मन के कदमों का इतिहास है। उदाहरण के लिए,BBBI
इसका मतलब होगा कि आपका दुश्मन तीन बार झुके और एक त्वरित ड्रॉ करे।<your_health>
आपका वर्तमान स्वास्थ्य है<enemy_health>
दुश्मन का वर्तमान स्वास्थ्य है।<your_honour>
आपका वर्तमान सम्मान है।<enemy_honour>
दुश्मन का वर्तमान सम्मान है।
पहली बारी के लिए, history
और enemy_history
खाली हो जाएगा, इसलिए आपके कार्यक्रम को इस तरह अंतिम चार तर्कों के साथ बुलाया जाएगा:
<command> <your_health> <enemy_health> <your_honour> <enemy_honour>
कृपया इसके लिए तैयार रहें!
सूक्ष्म पाठक यह देख सकते हैं कि दोनों सामुराइ के सम्मान और स्वास्थ्य प्रदान करने वाले चार तर्क कुछ हद तक, सतही हैं; चूंकि यह एक संपूर्ण सूचना खेल है, इसलिए समुराई के सम्मान और स्वास्थ्य को केवल इतिहास का उपयोग करके निर्धारित किया जा सकता है।
ये मान सुविधा उद्देश्यों के लिए प्रदान किए जाते हैं ताकि आपको इतिहास के तर्कों को पार्स न करना पड़े। यह सरल रणनीतियों को लागू करने के लिए उपयोगी साबित होना चाहिए, जैसे कि जब आपका ऑनर 0 हो तो हमला न करें।
आउटपुट विवरण
एक कार्रवाई चुनने के लिए, अपने कार्यक्रम के उत्पादन में एक होना चाहिए W
, B
, G
, I
, P
, या O
मानक आउटपुट में, क्या कार्रवाई आप बनाना चाहते हैं पर निर्भर करता। यदि आपका प्रोग्राम 1000ms के भीतर कुछ भी आउटपुट नहीं करता है, तो इसे समाप्त कर दिया जाएगा और आपके प्रोग्राम को आउटपुट के रूप में माना जाएगा W
।
यदि आपका प्रोग्राम एक से अधिक अक्षरों का आउटपुट देता है, तो केवल पहले अक्षर पर विचार किया जाएगा - इसलिए आउटपुट आउटपुट Parry
के समान होगा P
।
यदि आपके प्रोग्राम के पहले अक्षर का आउटपुट ऊपर सूचीबद्ध विकल्पों में से कोई भी नहीं है, तो यह डिफ़ॉल्ट हो जाएगा W
।
प्रस्तुत करने का प्रारूप
इस पोस्ट के जवाब के रूप में एक कार्यक्रम प्रस्तुत करें। आप कई कार्यक्रम प्रस्तुत कर सकते हैं। यदि आप कई सरल कार्यक्रम प्रस्तुत कर रहे हैं, तो मैं उन्हें एक ही उत्तर के रूप में प्रस्तुत करने की सलाह देता हूं; यदि आप कई जटिल कार्यक्रम प्रस्तुत कर रहे हैं, तो मैं उन्हें अलग-अलग उत्तरों के रूप में प्रस्तुत करने की सलाह देता हूं। एक बार जब मैंने टूर्नामेंट में सफलतापूर्वक आपका कार्यक्रम जोड़ दिया है, तो मैं आपकी प्रविष्टि (नीचे लिंक) के साथ गिट रिपॉजिटरी के लिए एक कमिट करूंगा।
अगर मुझे ऐसी समस्याएं आती हैं जो आपके कार्यक्रम को टूर्नामेंट में शामिल होने से रोकती हैं, तो मैं आपकी प्रविष्टि पर एक टिप्पणी छोड़ दूंगा जो समस्या का संकेत देगा।
कृपया अपने सबमिशन में निम्नलिखित शामिल करें:
- स्कोरबोर्ड में उपयोग के लिए आपके प्रोग्राम का मानव पठनीय नाम। यहां रिक्त स्थान की अनुमति है; अल्पविराम और यूनिकोड वर्ण नहीं हैं।
- आपका प्रोग्राम जिस भाषा में लिखा गया है, कृपया TinyMUSH जैसी भाषाओं तक पहुँचने के लिए अजीब, कठिन लेखन से बचें।
- आपके कार्यक्रम का एक छोटा सा सारांश। यह इस बात पर एक विवरण हो सकता है कि कार्यक्रम कैसे काम करता है, या आपके कार्यक्रम के बारे में सिर्फ कुछ स्वाद पाठ (यदि आप सभी गुप्त होना चाहते हैं), या शायद दोनों।
- कमांड / आपके प्रोग्राम को चलाने के लिए आवश्यक है। उदाहरण के लिए, यदि आप जावा में अपने सबमिशन को लिख रहे थे, तो आप
example.java
संकलित निर्देश प्रदान करेंगे,javac example.java
फिर निर्देश जारी करेंगेjava example
। - कार्यक्रम के लिए स्रोत कोड।
सबमिट करने में सहायता करने के लिए, मैं एक सबमिशन टेम्प्लेट प्रदान करता हूं जो यहां पाया जा सकता है । टेम्पलेट प्रस्तुतियाँ को अच्छा बनाता है। मैं इसका उपयोग करने के लिए दृढ़ता से प्रोत्साहित करता हूं।
मैं दो उदाहरण प्रविष्टियाँ भी प्रदान करता हूँ। हालाँकि उदाहरण प्रविष्टियाँ राउंड रॉबिन में भाग लेंगी, लेकिन उनका मुख्य उद्देश्य अंतिम समुराई के शीर्षक के लिए गंभीर दावेदार होने के बजाय टूर्नामेंट के लिए सबमिशन और इनपुट / आउटपुट प्रारूपों को स्पष्ट करना है।
टूर्नामेंट संरचना
यह खंड बताता है कि प्रतिभागियों के बीच टूर्नामेंट कैसे चलाया जाएगा।
नियंत्रण कार्यक्रम
नियंत्रण कार्यक्रम पाइथन 2 में लिखा गया है और इसे अंतिम समुराई शोडाउन गितुब भंडार में पाया जा सकता है । यदि आप इसे स्वयं चलाना चाहते हैं, तो इसे चलाने के निर्देश को लिंक में README.md फ़ाइल में शामिल किया गया है। हालांकि, टूर्नामेंट परिणामों को प्रभावित करने वाले हार्डवेयर अंतर से बचने के लिए मेरे कंप्यूटर पर चलने वाले केवल टूर्नामेंट आधिकारिक होंगे।
नियंत्रण कार्यक्रम को आर्क लिनक्स चलाने वाले लैपटॉप कंप्यूटर पर चलाया जाएगा। इसमें इंटेल कोर i7 प्रोसेसर और 8GB रैम है। मैं अपने कंप्यूटर पर चलने वाली सभी प्रविष्टियों को प्राप्त करने का प्रयास करूंगा, लेकिन यदि आप उन भाषाओं से बचते हैं, जिनकी मैं स्वतंत्र रूप से एक्सेस नहीं कर सकता (जैसा कि मौद्रिक लागत में नहीं)।
स्कोरिंग प्रणाली
स्कोरिंग सिस्टम एक राउंड रॉबिन है। प्रत्येक कार्यक्रम हर दूसरे कार्यक्रम के खिलाफ आठ मैच खेलेगा। एक जीत कार्यक्रम 1 अंक, एक नुकसान नहीं अंक और एक ड्रा 0.5 अंक देता है। उच्चतम स्कोर वाला कार्यक्रम गेम जीतता है। अगर कोई ड्रा होता है, तो मैं विजेता को निर्धारित करने के लिए एक दूसरे के खिलाफ शीर्ष दो कार्यक्रमों को द्वंद्वयुद्ध करूंगा।
यदि प्रत्येक प्रोग्राम एक-दूसरे को चलाएगा तो प्रोग्राम की संख्या 8 से कम हो सकती है यदि प्रवेशकों की एक बड़ी संख्या है। ऐसा होने पर मैं यहां एक नोट जोड़ूंगा।
मैं कई बार राउंड रॉबिन चला रहा हूँ क्योंकि नई प्रस्तुतियाँ पोस्ट की गई हैं, लेकिन यह केवल सबसे हाल का राउंड रॉबिन है जो गिनती करेगा।
अयोग्यताएं
आपके कार्यक्रम को टूर्नामेंट से अयोग्य घोषित किया जाना संभव है। अयोग्यता हो सकती है यदि:
- आपका कार्यक्रम संकलन या चलाने के लिए नहीं है;
- आपका कार्यक्रम किसी अन्य प्रोग्राम का एक रणनीतिक डुप्लिकेट है (अर्थात, यह अन्य प्रोग्राम के समान सटीक रणनीति लागू करता है);
- आपका कार्यक्रम नियंत्रक कोड, अन्य कार्यक्रम के कोड, आदि को संशोधित करके अन्य कार्यक्रमों को तोड़फोड़ करने का प्रयास करता है;
- आपका प्रोग्राम कंट्रोलर कोड में बग का फायदा उठाने का प्रयास करता है। बगों का दोहन करने के बजाय आपको गेट रिपॉजिटरी में एक मुद्दे को खोलना चाहिए, यहां एक टिप्पणी करें, या मुझे चैट में पिंग करें।
पिछले परिणाम
सभी टूर्नामेंटों के विस्तृत परिणाम विकि पृष्ठ पर उपलब्ध कराए गए हैं ।
सबसे हालिया टूर्नामेंट 2015-07-17 07:20 को पूरा हुआ। यहाँ परिणामों का सारांश दिया गया है:
The Observer: 209.0
Coward: 203.0
Monk: 173.0
Elephant Warrior: 157.0
Iniqy: 157.0
Agent 38: 144.0
Ninja: 138.0
Meiyo Senshi: 138.0
Kakashi: 136.0
Yoshimitsu: 131.0
Hermurai: 121.0
Warrior Princess: 120.0
Gargoyle: 119.5
The Honourable: 119.0
Hebi: 118.5
Predictor: 116.0
Whack-a-mole: 107.0
The Fool: 106.0
The Prophet: 105.0
Copy-san: 97.0
YAGMCSE: 80.0
The Waiter: 66.0
Swordsman: 43.0
Spork Holder: 32.5
Blessed Samurai: 27.5
Attacker: 27.0
The Terminator: 17.0
Master Yi: 16.0