मुसीबत:
शतरंज में, पुनरावृत्ति द्वारा ड्रा के बारे में कुछ हद तक ज्ञात नियम है। यदि एक ही स्थिति 3 बार (या अधिक) दोहराई जाती है, तो खिलाड़ी इस चाल को बनाने का इरादा रखता है जिसके कारण यह दोहराव ड्रॉ का दावा कर सकता है।
कभी-कभी किसी मध्यस्थ के लिए यह एक आसान काम होता है, अगर आखिरी कुछ चालें सिर्फ पीछे और आगे की तरफ बढ़ने वाले खिलाड़ी होते हैं। कभी-कभी यह कम तुच्छ होता है, जब बार-बार पदों के बीच टुकड़े काफी बढ़ गए हैं।
इस चुनौती में समस्या एक सत्य मूल्य का उत्पादन करना है यदि दावा की गई स्थिति को पुनरावृत्ति द्वारा आकर्षित किया गया है (3 बार या अधिक बार देखा गया है) और एक गलत मूल्य है यदि पुनरावृत्ति द्वारा दावा की गई स्थिति को आकर्षित नहीं किया गया है, तो समन्वय नामांकन में चालों की एक सूची दी गई है जैसा कि नीचे वर्णित है, या आपके चयन की कोई भी सूचना (लेकिन आपको परीक्षण मामलों को बदलना होगा)।
एक स्थिति क्या है?
वास्तविक दुनिया के परिदृश्य में, स्थिति चीजों से प्रभावित होगी जैसे कि कोई खिलाड़ी महल कर सकता है या क्या एन-पासेंट संभव है; आपको समस्या के समाधान में इन पर विचार नहीं करना चाहिए । इस समस्या में एक स्थिति को बोर्ड पर टुकड़ों के विन्यास द्वारा परिभाषित किया गया है। इसलिए, इस समस्या के उद्देश्यों के लिए, दो पदों को समान देखा जाता है यदि दोनों बोर्डों पर प्रत्येक वर्ग एक ही रंग के एक ही प्रकार के टुकड़े पर कब्जा कर लिया जाता है। इसके लिए सटीक टुकड़ा नहीं होना चाहिए उदाहरण के लिए सफेद शूरवीरों को स्वैप स्वैप किया जा सकता है और यदि अन्य सभी टुकड़े मानदंडों को पूरा करते हैं तो यह अभी भी एक ही स्थिति होगी।
मान्य संकेतन कैसा दिखता है?
हालांकि मैं समन्वय संकेतन की व्याख्या करने के लिए आगे बढ़ूंगा, आप अपने द्वारा चुने गए एक संकेतन प्रणाली द्वारा इनपुट लेने के लिए स्वतंत्र हैं। उसे उपलब्ध कराया:
- संकेतन में प्रत्येक वस्तु किसी या सभी का वर्णन करती है: टुकड़ा / टुकड़े शामिल; क्या चेक, चेकमेट, डबल चेक, चेकमेट या गतिरोध वितरित किया गया है; यदि एन-पासेंट कैप्चर हुआ है; प्रारंभिक स्थिति; अंतिम स्थिति।
- आपको अपने नोटेशन में पुनरावृत्ति के बारे में जानकारी नहीं हो सकती है।
इसलिए जब तक ये मानदंड पूरे नहीं हो जाते, मुझे स्वीकार करने में खुशी होती है, जब तक कि आप अपने उत्तर, अपने अंकन प्रणाली में निर्दिष्ट करते हैं। यह हो सकता है जैसे 0 अनुक्रमित पंक्ति, स्तंभ ट्यूपल्स या जो भी आपके कार्यक्रम के लिए समझ में आता है।
समन्वय की सूचना
समन्वय संकेतन एक संकेतन है जो विशुद्ध रूप से चाल को निर्देशांक की प्रणाली के रूप में वर्णित करता है।
एक चाल को पहले सेट से शुरुआती समन्वय के रूप में वर्णित किया जाता है {A1-H8}
और फिर उसी सेट से गंतव्य फिर से समन्वयित होता है। तो राजा का गम्बित (स्ट्रिंग्स के संग्रह के रूप में) दिखेगा
{"E2-E4","E7-E5","F2-F4"}
मेरा मानना है कि यह इस समस्या के लिए उपयोग करने के लिए सबसे अच्छा अंकन है क्योंकि यह बाहरी जानकारी से अटे नहीं है जैसे कि चेक हुआ है या किस प्रकार का टुकड़ा घूम रहा है। जैसा कि उल्लेख से पहले उल्लेख आपकी पसंद का हो सकता है, इसलिए आप अन्य संकेतन का उपयोग कर सकते हैं जैसे बीजीय संकेतन या आप इस संकेतन को अनुकूलित कर सकते हैं (उदाहरण के लिए डैश निकालें, या टुपल्स की सूची के रूप में लें)
नियम:
- आपको इस बात पर विचार नहीं करना चाहिए कि क्या कोई स्थिति या चाल वैध है, केवल क्या यह पुनरावृत्ति का कारण बनता है
- आप मान सकते हैं कि कास्टलिंग और प्यादा प्रमोशन नहीं होगा ।
- आपको इनपुट के रूप में स्ट्रिंग्स की एक सूची लेनी चाहिए और तीसरी चाल (या अधिक) पुनरावृत्ति अंतिम चाल पर हुई है या नहीं इसके अनुरूप एक सत्य या गलत मूल्य का उत्पादन करें।
- खेल हमेशा शतरंज के लिए मानक शुरुआती स्थिति में शुरू होता है। प्रारंभिक स्थिति पुनरावृत्ति की ओर गिन सकती है।
- पुनरावृत्ति द्वारा ड्रा नहीं हुआ है यदि स्थिति अंतिम चाल से दोहराई नहीं जाती है
सामान्य नियम:
- यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें। - डिफ़ॉल्ट I / O नियमों के साथ आपके उत्तर के लिए मानक नियम लागू होते हैं , इसलिए आपको उचित पैरामीटर और रिटर्न-प्रकार, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा फोन।
- डिफ़ॉल्ट लूपोल्स वर्जित हैं।
- यदि संभव हो, तो कृपया अपने कोड (यानी TIO ) के लिए एक परीक्षण के साथ एक लिंक जोड़ें ।
- साथ ही, आपके उत्तर के लिए स्पष्टीकरण जोड़ना अत्यधिक अनुशंसित है।
परीक्षण के मामलों
आपको इसके लिए सत्य मान लौटाना चाहिए:
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"}
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"}
{"B1-C3","B8-C6","D2-D4","D7-D5","D1-D3","D8-D6","C3-B1","C6-B8","B1-C3","B8-C6","D3-D1","D6-D8","D1-D3","D8-D6"}
{"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-E6","E2-F3","E6-D4","F3-D1","D4-C6","D1-E2","C6-D4","E1-D1","D4-C6","D1-E1","C6-D4"}
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3"}
और इसके लिए गलत मूल्य:
{}
{"E2-E4","E7-E5","F2-F4"}
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","F2-F4","F7-F5"}
{"E2-E4","E7-E5","G1-F3","B8-C6","F1-C4","G8-F6","F3-G5","D7-D5","E4-D5","F6-D5","G5-F7"}
{"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-C6","E2-D1","C6-D4","D1-E2","D4-C6","E2-D1"}
{"B1-C3","B8-C6","C3-B5","C6-B4","B5-D4","B4-D5","D4-C6","D5-C3","C6-B8","C3-B1","B8-C6","B1-C3","C6-B8","C3-B1"}
{"E2-E4","E7-E5","D1-E2","E8-E7","E1-D1","D8-E8","E2-E1","E7-D8","E1-E2","E8-E7","E2-E1","E7-E8"}
C6-B8
के बाद प्रारंभिक स्थिति तीन बार हुई है।