ईस्टर अंडा खोजना
बंटी ने अंडा ढूंढने से पहले बॉट को अंडा दिया। बॉट खुश।
अवलोकन
यह ईस्टर और ईस्टर अंडे की शिकार परंपरा के सम्मान में एक राजा की चुनौती है!
आपके बॉट में हर दिशा में दो स्थानों की दृष्टि है, जिसमें विकर्ण भी शामिल हैं, जो आपके चारों ओर 5x5 वर्ग बनाते हैं जिसे आप देख सकते हैं। यह अंडे की तलाश में है, और जो भी सबसे अधिक अंडे जीतता है वह पाता है!
बोर्ड
बोर्ड में oएस शामिल होंगे , जो ईस्टर अंडे हैं, #एस, जो दीवारें हैं, *एस, जो अन्य खिलाड़ी हैं, और एस, जो खाली स्थान हैं।
- यह किनारे की लंबाई के साथ एक वर्ग होगा
(number of entries) * 3। - यह दीवारों से घिरा होगा।
- दीवारों के अंदर बेतरतीब ढंग से रखी गई, सीधी रेखा की दीवारों का एक वर्गीकरण
#होगा, जिसमें 2 और 10 समावेशी के बीच एक यादृच्छिक लंबाई होगी। उनमें से होगा(number of entries) * 3। - अंडों को तब बेतरतीब ढंग से रखा जाएगा। उनमें से होगा
(number of entries) * 4, और वे केवल रिक्त () वर्गों पर उत्पन्न होंगे । - ठीक से काम करने के लिए बोर्ड बनाने की प्रक्रिया के लिए कम से कम 7 एंट्री होनी चाहिए।
यहाँ एक JSFiddle है जो आपके साथ परीक्षण करने के लिए एक यादृच्छिक बोर्ड उत्पन्न करेगा । यहाँ एक उदाहरण है, के साथ (number of entries) = 7:
#####################
# o ##
# # o ##
# #o ###### ##
###### # ##
## o # # ##
## o# #o# o o##
## #o # # o # #
## # o # # # #
## ## # # o # #
## # # o # # #
## # o # ## # # #
## # # # #
# o # ## # #
# o oo ##o #
#o ####### oo ## #
# # # #
# o o o# #
# o #### o o#
# #
#####################
बोर्ड उत्पन्न होने के बाद, प्रत्येक खिलाड़ी को एक यादृच्छिक वर्ग (खाली स्थान) पर रखा जाता है ।
इनपुट
आप इनपुट की छह लाइनें लेंगे। पहली पांच पंक्तियाँ आपके विज़न का क्षेत्र हैं (बोर्ड की सीमा से बाहर के रिक्त स्थान का प्रतिनिधित्व किया जाएगा X, और मध्य स्थान हमेशा *आपके पास होगा), और छठी पंक्ति खाली होगी (पहली बार में)।
उत्पादन
आप तीन लाइनों का उत्पादन करेंगे। सबसे पहले, आप जिस दिशा में बढ़ना चाहते हैं:
1 2 3
8 YOU 4
7 6 5
(9 यदि आप स्थानांतरित नहीं करना चाहते हैं तो एक नो-ऑप है), दूसरा, Aटैटैक, Cएन्टर, या में से एकN (इसे जल्द ही गहराई से समझाया जाएगा), और थ्रिड लाइन 1024 तक की लंबाई की कोई भी स्ट्रिंग होगी यह आपकी बॉट की मेमोरी होगी। आप इसका उपयोग कर सकते हैं जो भी आप चाहें, या आप इसे खाली छोड़ सकते हैं। यह स्मृति अगले रन पर आपके प्रोग्राम के लिए इनपुट की छठी पंक्ति होगी।
आउटपुट की सभी आगे की रेखाओं को नजरअंदाज कर दिया जाता है, और यदि केवल एक ही रेखा है, तो दूसरी को रिक्त माना जाता है।
चलती
निम्न प्रक्रिया का उपयोग यह निर्धारित करने के लिए किया जाता है कि आप कहां गए थे:
- यदि, जब आप चलते हैं, तो आप एक खाली स्थान (
) में समाप्त होते हैं , आपके खिलाड़ी को उस स्थान पर रखा जाता है। - यदि आप एक दीवार (
#) में समाप्त होते हैं , तो आपकी चाल को अनदेखा किया जाता है और आप अपनी बारी खो देते हैं। - यदि आप एक अंडे (
o) या एक खिलाड़ी (*) पर समाप्त होते हैं , तो यह जानकारी संग्रहीत होती है और हर किसी के चले जाने के बाद इसका उपयोग किया जाएगा।
हर किसी के चले जाने के बाद, अस्पष्टताओं का समाधान हो जाता है।
यदि दो खिलाड़ी हैं जो एक ही स्थान पर उतरे हैं, तो एक लड़ाई होती है! यह वह जगह है जहां A/ C/ Nखेलने के लिए आता है। Aटीटैक बीइंग ऑथिंग N(सामान्य हमला), ईटिंग Nबीट्स Cएनकाउंटर (आप कुछ भी काउंटर नहीं कर सकते हैं), और Cएनटैक बीट Aटीटैक (काउंटरटैक)। जो खिलाड़ी इस लड़ाई को जीतता है, वह अपने वर्ग पर रहता है, और जो खिलाड़ी हार जाता है, वह उस मूल वर्ग में वापस चला जाता है जिस पर उन्होंने शुरुआत की थी। एक टाई होने की स्थिति में, दोनों खिलाड़ी वापस उसी जगह जाते हैं जहाँ वे थे।
अगर एक हारने वाला या बंधा हुआ खिलाड़ी वापस वहीं जाता है जहां वे थे और वहां एक और खिलाड़ी है, तो कोई लड़ाई नहीं है और दूसरा खिलाड़ी भी अपने मूल स्थान पर वापस आ जाएगा। यदि इस स्थान में कोई अन्य खिलाड़ी है, तो वह खिलाड़ी वापस चला जाता है, और यह तब तक जारी रहता है जब तक कि सभी खिलाड़ी अलग-अलग स्थानों पर नहीं होते।
यदि एक स्थान पर तीन या अधिक खिलाड़ी हैं, तो वे सभी अपने मूल पदों पर वापस आ जाते हैं।
अगर कोई खिलाड़ी अभी भी एक अंडे पर खड़ा है ...
- यदि खिलाड़ी ने चुना
A, तो अंडा नष्ट हो गया। - यदि खिलाड़ी ने चुना
C, तो कुछ भी नहीं होता है और खिलाड़ी अपने मूल स्थान पर लौट जाता है। - यदि खिलाड़ी ने चुना
N, तो खिलाड़ी अंडे उठाता है! खिलाड़ी का स्कोर एक से बढ़ जाता है और अंडे को हटा दिया जाता है।
बोली
आप प्रत्येक प्रतियोगी के बीच निष्पक्षता सुनिश्चित करने के लिए किसी भी भाषा का उपयोग कर सकते हैं जो विंडोज, ओएसएक्स और लिनक्स पर स्वतंत्र रूप से उपलब्ध है। यदि कोड स्वतंत्र रूप से चलने योग्य नहीं है, लेकिन एक प्रारूप में संकलित या पैक किया जा सकता है, तो कृपया इस प्रारूप को अपने उत्तर में भी शामिल करें। आदर्श रूप से, यदि आप अपने कोड को अधिक सामान्य भाषा (यानी कॉफीस्क्रिप्ट -> जावास्क्रिप्ट) में संकलित कर सकते हैं, तो कृपया ऐसा करें।
स्कोरिंग
आपका स्कोर आपके द्वारा दस रनों में से एकत्रित किए गए अंडों की औसत संख्या होगी। एक रन तब समाप्त होता है जब सभी अंडे एकत्र हो जाते हैं या जब (number of entries * 25)मुड़ जाते हैं। मैं मैन्युअल रूप से सुनिश्चित करूंगा कि प्रत्येक नक्शे के लिए सभी अंडों तक पहुंचना संभव है (लगातार अंडे पैदा करने तक नक्शे तैयार करके)।
स्कोरबोर्ड
निम्नलिखित सभी शर्तों के पूरा होने पर एक स्कोरबोर्ड जोड़ा जाएगा:
- सकारात्मक या शून्य स्कोर (डाउनवोट नहीं) के साथ कम से कम सात वैध प्रविष्टियां प्रस्तुत की गई हैं
- इस चुनौती के निर्माण में कम से कम 48 घंटे बीत चुके हैं (UTC 14:23)
इस पूर्व-प्रतियोगिता अवधि के दौरान नियम नहीं बदलेंगे, सिवाय स्पष्टीकरण को जोड़ने के जहां एक नियम स्पष्ट नहीं था। एक बार जब स्कोरबोर्ड डाल दिया जाता है, तो परीक्षण कार्यक्रम भी यहां पोस्ट किया जाएगा ताकि आप अपनी प्रविष्टियों का परीक्षण कर सकें। इसके लिए परीक्षण कोड अभी भी कार्य-प्रगति पर है, लेकिन यह खेलने योग्य है और यह काम करता है। यहाँ GitHub रेपो है।
9, तो उस पर सार्थक हमला नहीं किया जा सकता है। यदि कोई अन्य खिलाड़ी (B) उस खिलाड़ियों के वर्ग पर कदम रखता है और जीतता है, तो A को उसके मूल वर्ग (जो समान है) में वापस ले जाया जाएगा। लेकिन अब एक टकराव है क्योंकि ए और बी दोनों हैं, इसलिए बी को अपने स्वयं के वर्ग में वापस जाना होगा। तो परिणाम वास्तविक लड़ाई से स्वतंत्र है, बी हमेशा प्रारंभिक वर्ग में वापस चला जाता है और ए हमेशा रहता है। यह मुझे दोनों को लिखने की अनुमति देगा, जो अन्य सभी के लिए एक मार्ग को अवरुद्ध करके अन्य प्रस्तुत करने में मदद कर सकता है।