चुनौती
एक प्रोग्राम या फ़ंक्शन लिखें जो एक स्ट्रिंग इनपुट को फ़ंक्शन पैरामीटर के रूप में या स्टड से लेता है और यह निर्धारित करता है कि क्या यह एक मान्य FEN स्ट्रिंग है।
इनपुट
आप मान सकते हैं कि इनपुट में केवल निम्नलिखित वर्ण (केस संवेदी) शामिल होंगे
pkqrbnPKQRBN12345678/
। इनपुट की लंबाई हमेशा न्यूनतम 1 वर्ण और अधिकतम 100 वर्ण होगी
उत्पादन
आउटपुट एक सत्य / गलत मूल्य होना चाहिए। जब तक वे सुसंगत हैं तब तक ये सभी मूल्य हो सकते हैं (सभी सत्य परिणाम समान आउटपुट होते हैं, सभी गलत परिणाम समान आउटपुट होते हैं)। आपके पास दो अलग-अलग संभावित आउटपुट होने चाहिए।
क्या मान्य के रूप में गिना जाता है
लोअरकेस अक्षर काले टुकड़ों का प्रतिनिधित्व करते हैं, अपरकेस अक्षर सफेद टुकड़ों का प्रतिनिधित्व करते हैं।
आपको यह सुनिश्चित करना चाहिए कि वर्तमान स्थिति में टुकड़ों के लिए शतरंज के खेल में यह संभव है।
प्रत्येक खिलाड़ी के पास हमेशा 1 राजा होगा (k / K)
प्रत्येक खिलाड़ी के पास 8 से अधिक प्यादे (पी / पी) नहीं हो सकते हैं।
प्रत्येक खिलाड़ी की आम तौर पर 1 * क्वीन (q / Q) से
अधिक नहीं होगी। प्रत्येक खिलाड़ी की आम तौर पर कोई अधिक नहीं होगी। 2 * बदमाशों (आर / आर) से
प्रत्येक खिलाड़ी के पास आमतौर पर 2 * शूरवीर (एन / एन)
से अधिक नहीं होंगे। प्रत्येक खिलाड़ी के पास आमतौर पर 2 * बिशप (बी / बी)
* से अधिक नहीं होगा । यह एक खिलाड़ी के लिए कानूनी है ' इन चार टुकड़ों में से किसी एक को 'मोहरा' को बढ़ावा देना।
प्रत्येक खिलाड़ी के लिए प्यादे, रानी, किश्ती, शूरवीर और बिशप की कुल संख्या कभी भी 15 से अधिक नहीं होगी
टुकड़ों की कुल संख्या और खाली वर्ग (संख्याओं से निरूपित) को हमेशा प्रत्येक रैंक के लिए ठीक 8 तक जोड़ना चाहिए। और हमेशा आगे की स्लैश द्वारा अलग-अलग 8 रैंक होनी चाहिए।
जिन चीजों को आप नजरअंदाज कर सकते हैं
आपको खुद के साथ यह चिंता करने की आवश्यकता नहीं है कि निरूपित स्थिति में खेलना संभव है या नहीं, या यदि स्थिति कानूनी है, तो केवल यह कि टुकड़े दिए गए मात्रा में मौजूद हो सकते हैं।
आप FEN स्ट्रिंग्स के और अधिक जटिलताओं को अनदेखा कर सकते हैं जैसे खिलाड़ी टर्न, कालिंग अधिकार और एन पास।
यह कोड गोल्फ है। बाइट्स जीत में सबसे छोटा कार्यक्रम। सामान्य कमियां और नियम लागू होते हैं।
परीक्षण के मामलों
इनपुट rnbqkbnr / pppppppp / 8/8/8/8 / PPPPPPPP / RNBQKBNR
आउटपुट ट्रू
इनपुट 2br2k1 / 1p2n1q1 / P2p2p1 / P1bP1pNp / 1BP2PnP / 1Q1B2P1 / 8 / 3NR2K
आउटपुट ट्रू
इनपुट r2r2k1 / p3q2p / ppR3pr / rP4bp / 3p4 / 5B1P / P4PP1 / 3Q1RK1
आउटपुट फाल्स
(काले में 7 प्यादे और 4 बदमाश हैं - असंभव)
इनपुट 6k1 / pp3ppp / 4p3 / 2P3b1 / bPP3P1 / 3K4 / P3Q1q1
आउटपुट झूठी (केवल 7 रैंक)
इनपुट 3r1rk1 / 1pp1bpp1 / 6p1 / pP1npqPn / 8 / 4N2P / P2PP3 / 1B2BP2 / R2QK2R
आउटपुट झूठी (9 रैंक)
इनपुट 5n1k / 1p3r1qp / p3p3 / 2p1N2Q / 2P1R3 / 2P5 / P2r1PP1 / 4R1K1
आउटपुट झूठा (2 वीं श्रेणी में 9 वर्ग / टुकड़े हैं)
इनपुट rnbqkbnr / pppppppp / 8/35/8/8 / PPPPPPPP / RNBQKBNR
आउटपुट यह सच है
कि इस मामले को स्पष्ट करने के लिए Feersum और Arnauld के लिए धन्यवाद (3 + 5 = 8)
FEN क्या है?
एफईएन एक शतरंज बोर्ड पर टुकड़ों की स्थिति दर्ज करने के लिए एक मानक संकेतन है।
छवि क्रेडिट http://www.chessgames.com
* It is legal for a player to 'promote' a pawn to any of these four pieces.खिलाड़ी की संख्या 9 रानियों तक हो सकती है क्योंकि क्षतिपूर्ति करने के लिए प्यादों की संख्या कम हो जाती है। आपको टुकड़ों के कानूनी या अवैध होने की स्थिति के बारे में चिंता करने की आवश्यकता नहीं है, केवल टुकड़ों की संख्या।
358 खाली वर्गों का वर्णन करने के लिए सिर्फ एक असामान्य तरीका है।