शतरंज में, फोर्सिथ-एडवर्ड्स संकेतन , जिसे आमतौर पर "एफईएन" कहा जाता है, बोर्डों को ट्रांसक्रिप्ट करने का एक टेक्स्ट तरीका है। यह व्हाइट के दृष्टिकोण से ऊपर से नीचे तक बोर्ड की आठ पंक्तियों (शतरंज में "रैंक" कहा जाता है) में से प्रत्येक का वर्णन करता है। टुकड़ों को के (राजा), क्यू (रानी), आर (किश्ती), बी (बिशप), एन (नाइट), और पी (प्यादा) के रूप में लिखा जाता है। काले टुकड़े निचले अक्षरों में इन अक्षरों का उपयोग करते हैं, और सफेद टुकड़े बड़े अक्षरों में इन अक्षरों का उपयोग करते हैं। रिक्त स्थान 1 से 8 तक की संख्या से संकेत मिलता है कि कितने खाली स्थान हैं। एक पूरी तरह से खाली रैंक होगी 8
, सबसे दाहिने कॉलम में एक सिंगल ब्लैक रूक (जिसे शतरंज में "फाइलें" कहा जाता है) होगा 7r
, और एक पंक्ति के प्रत्येक छोर पर दो सफेद पंजे होंगे PP4PP
। रैंकों को एक से अलग किया जाता है/
। वहाँ आम तौर पर अन्य जानकारी कहा, यह दर्शाता है जो पक्ष, ले जाने के कैसलिंग और करने के लिए है है passant एन अधिकार, इस कदम संख्या, और halfmove घड़ी, लेकिन हम उन्हें इस चुनौती के प्रयोजनों के लिए ध्यान नहीं देगा।
इनपुट
जैसा कि आप कृपया कमांड लाइन या STDIN से एक FEN स्ट्रिंग। आप मान सकते हैं कि यह स्ट्रिंग हमेशा मान्य है।
उत्पादन
बोर्ड के एक साधारण ASCII कला प्रतिनिधित्व के बारे में लिखें क्योंकि यह वास्तव में दिखाई देगा:
- टुकड़ों को एफईएन में उनके चरित्र द्वारा दर्शाया जाता है
- रिक्त वर्ग रिक्त स्थान द्वारा दर्शाए जाते हैं
- टुकड़ों और वर्गों को एक पाइप द्वारा अलग किया जाता है
|
और बोर्ड के प्रत्येक तरफ पाइप होते हैं
तो एक खाली बोर्ड, जैसा 8/8/8/8/8/8/8/8
कि एफईएन में लिखा गया है, दिखाई देगा
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
एक शतरंज के खेल की प्रारंभिक स्थिति इस प्रकार लिखी जाती है rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, और इस तरह दिखाई देगी
|r|n|b|q|k|b|n|r|
|p|p|p|p|p|p|p|p|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
|P|P|P|P|P|P|P|P|
|R|N|B|Q|K|B|N|R|
शतरंज समुदाय में "द इम्मोर्टल गेम" कहे जाने वाले एंडरसेन-केसेरित्ज़की 1851 की अंतिम स्थिति के रूप में लिखा गया है r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1
, और आपके कार्यक्रम को जब इनपुट प्राप्त होगा, तो यह आउटपुट होगा:
|r| |b|k| | | |r|
|p| | |p|B|p|N|p|
|n| | | | |n| | |
| |p| |N|P| | |P|
| | | | | | |P| |
| | | |P| | | | |
|P| |P| |K| | | |
|q| | | | | |b| |