एक क्रॉसवर्ड ग्रिड को सही ढंग से संख्या देने के लिए एक कार्यक्रम का निर्माण करें।
इनपुट
इनपुट क्रॉसवर्ड ग्रिड का प्रतिनिधित्व करने वाली फ़ाइल का नाम होगा। इनपुट फ़ाइलनाम को एक इनपुट के रूप में, मानक इनपुट पर, या हार्डकॉडिंग के अलावा अन्य पारंपरिक साधनों द्वारा पारित किया जा सकता है।
ग्रिड फ़ाइल स्वरूप: एक पाठ फ़ाइल। पहली पंक्ति में दो श्वेत-रिक्त पृथक पूर्णांक स्थिरांक होते हैं M
और N
। उस पंक्ति का अनुसरण करने वाली M
रेखाएँ हैं जिनमें से प्रत्येक N
वर्ण (साथ में एक नई पंक्ति) को चुना गया है [#A-Z ]
। इन वर्णों की व्याख्या इस तरह की जाती है कि '#'
एक अवरुद्ध वर्ग को इंगित करता है, ' '
पहेली में एक खुला वर्ग जिसमें कोई ज्ञात सामग्री नहीं होती है और कोई भी पत्र एक खुला वर्ग होता है जिसमें वह अक्षर होता है।
उत्पादन
आउटपुट एक नंबरिंग फ़ाइल होगी, और मानक आउटपुट को एक फ़ाइल में भेजा जा सकता है, जिसका नाम इनपुट फ़ाइल नाम से प्राप्त होता है, उपयोगकर्ता निर्दिष्ट फ़ाइल या किसी अन्य पारंपरिक गंतव्य पर।
नंबर फ़ाइल प्रारूप एक पाठ फ़ाइल। '#' से शुरू होने वाली लाइनों को अनदेखा किया जाता है और टिप्पणियों के लिए इस्तेमाल किया जा सकता है। अन्य सभी लाइनों एक टैब अलग त्रिक शामिल i
, m
, n
जहां i
एक नंबर ग्रिड पर मुद्रित करने के लिए प्रतिनिधित्व करता है, और m
और n
पंक्ति और वर्ग जहां यह मुद्रित किया जाना चाहिए के स्तंभ का प्रतिनिधित्व करते हैं। दोनों पंक्तियों और स्तंभों की संख्या 1 से शुरू होती है।
नंबरिंग योजना
सही ढंग से गिने ग्रिड में निम्नलिखित गुण होते हैं:
- संख्या 1 से शुरू होती है।
- खुले वर्गों का कोई कॉलम या स्पैन नहीं है। (आप मान सकते हैं कि समस्या में कोई एकल वर्ण उत्तर मौजूद नहीं होगा।)
- मतगणना क्रम में शीर्ष पंक्ति से लेकर नीचे तक प्रत्येक पंक्ति को बाएं से दाएं की ओर ले जाकर संख्याओं का सामना किया जाएगा। (इसलिए, प्रत्येक क्षैतिज अवधि को उसके सबसे बाएं वर्ग में गिना जाता है, और प्रत्येक स्तंभ को उसके सबसे ऊपरी वर्ग पर गिना जाता है।)
परीक्षण इनपुट और अपेक्षित आउटपुट
इनपुट:
5 5
# ##
#
#
#
## #
आउटपुट (टिप्पणी लाइनों की उपेक्षा):
1 1 2
2 1 3
3 2 2
4 2 4
5 2 5
6 3 1
7 3 4
8 4 1
9 4 3
10 5 3
अलग
यह उम्मीद है कि कई क्रॉसवर्ड संबंधित चुनौतियों में से पहला होगा। मैं इस प्रक्रिया में फ़ाइल-स्वरूपों के एक सुसंगत सेट का उपयोग करने और प्रक्रिया में क्रॉसवर्ड संबंधित उपयोगिताओं के सम्मानजनक सूट के निर्माण की योजना बना रहा हूं। उदाहरण के लिए बाद की पहेली इस पहेली के इनपुट और आउटपुट के आधार पर क्रॉसवर्ड के ASCII संस्करण को प्रिंट करने के लिए बुलाएगी।
'\n'
सभी प्लेटफार्मों पर सी के रूप में प्रतिनिधित्व किया है। धारणा यह है कि इनपुट फ़ाइल उसी सिस्टम पर बनाई गई थी जो इसे संसाधित करेगी, इसलिए यह समस्या पारदर्शी होनी चाहिए। कोड-गोल्फ के बारे में एक सामान्य नोट: यदि आप एक अजीब भाषा में काम कर रहे हैं या एक अजीब मंच पर सरल कुछ भी है कि पाठक को आश्चर्य हो सकता है का एक नोट बनाते हैं। लोग आपकी अधीनता को देखते हुए उसके लिए भत्ता बनाएंगे।