अवलोकन
मोती (या Masyu) एक तर्क है जो ग्रिड पर खेला जाता है। ग्रिड पर काले और सफेद मोती रखे गए हैं। ऑब्जेक्ट एक एकल, बंद लूप बनाने के लिए है जो प्रत्येक मोती के माध्यम से केवल सीधी रेखा खंड और समकोण का उपयोग करके यात्रा करता है।
कुछ नियम हैं जो यह बताते हैं कि कैसे मोती के साथ लूप इंटरैक्ट करता है:
- सफेद मोती के माध्यम से सीधे यात्रा की जानी चाहिए , लेकिन पाश को अपने पथ में पिछले और / या अगले सेल में बदलना होगा ।
- काले मोती को चालू करना चाहिए , लेकिन पाश को अपने पथ में अगले और पिछले कोशिकाओं के माध्यम से सीधे यात्रा करनी चाहिए ।
- लूप को स्वयं को पार नहीं करना चाहिए या अन्यथा नहीं करना चाहिए । सभी कोशिकाओं में बिल्कुल शून्य या दो लूप प्रविष्टि / निकास हैं।
विकिपीडिया (और इसके समाधान) से एक उदाहरण पहेली:
आपका उद्देश्य किसी दी गई पहेली को हल करना है। यदि कई संभावित समाधान हैं, तो इससे कोई फर्क नहीं पड़ता कि आप किसे देते हैं।
इनपुट
इनपुट एक अनसुलझा वर्ग ग्रिड होगा। ऊपर दिखाया गया उदाहरण इस तरह दिखेगा:
..w.w.....
....w...b.
..b.b.w...
...w..w...
b....w...w
..w....w..
..b...w...
w...b....w
......ww..
..b......b
w
एक सफेद मोती है, b
एक काला मोती है, और .
एक खाली सेल है।
मान लें कि इनपुट मान्य है। इसका मतलब यह अच्छी तरह से बनता है, और कम से कम एक समाधान संभव है। सभी मान्य पहेलियाँ कम से कम 3x3 हैं, और कम से कम एक मोती शामिल हैं।
उत्पादन
आउटपुट पथ का प्रतिनिधित्व करने वाले निर्देशांक की एक स्ट्रिंग है। ग्रिड के ऊपरी बाएँ कोने में 0 0
ऊपरी दायाँ हिस्सा है n-1 0
, जहाँ n ग्रिड की चौड़ाई है।
एक मार्ग केवल निर्देशांक की एक श्रृंखला है:
x1 y1 x2 y2 x3 y3 ...
रास्ता बंद मान लिया गया है, इसलिए आपको अंत में पहला समन्वय दोहराने की आवश्यकता नहीं है , लेकिन ऐसा करने के लिए कोई दंड नहीं है।
आउटपुट में पथ में कम से कम सभी कोनों से मिलकर होना चाहिए । बारी न होने पर आपको प्रत्येक सेल को पथ पर आउटपुट करने की आवश्यकता नहीं है। उदाहरण के लिए, उदाहरण के लिए आउटपुट के साथ शुरू हो सकता है:
1 0 5 0 5 1 ...
या
1 0 2 0 3 0 4 0 5 0 5 1 ...
आउटपुट चाहिए नहीं रास्ते में नहीं किसी भी सेल होते हैं। आप पथ के किसी भी कक्ष में प्रारंभ कर सकते हैं।
टुकड़ा
यहां एक स्निपेट है जिसका उपयोग आप अपने समाधान की कल्पना करने के लिए कर सकते हैं। बस उस ग्रिड में पेस्ट करें जिस पर आप काम कर रहे हैं और जिस पथ पर आप आउटपुट दे रहे हैं। मुझे पता है कि यह मेरे कोड को देखने के लिए दर्दनाक है, इसलिए मैं आपको केवल सुझाव नहीं देता;)
परीक्षण के मामलों
ये परीक्षण मामले प्रत्येक इनपुट के लिए एक संभावित आउटपुट दिखाते हैं (अंतिम को छोड़कर, जिसे अनसुलझा दिखाया गया है)। अन्य वैध रास्ते हो सकते हैं, आप सीडब्ल्यू या सीसीडब्ल्यू जा सकते हैं या एक अलग बिंदु पर शुरू कर सकते हैं, आदि समाधान परीक्षण के मामलों को सेकंड / मिनट / घंटे में हल करने में सक्षम होना चाहिए, न कि दिन / सप्ताह / कल्प।
...
w..
..b
0 0 1 0 2 0 2 1 2 2 1 2 0 2 0 1
.wb..b
......
..b...
w.ww..
......
b....b
0 0 2 0 2 2 4 2 4 1 3 1 3 0 5 0 5 5 3 5 3 4 4 4 4 3 1 3 1 4 2 4 2 5 0 5 0 2 1 2 1 1 0 1
.....w.b.w..
ww..b...b...
.w.....b....
...wbww..b.b
....b.......
w.w.........
..w......b.b
.....bb.....
.....b.....w
w.ww..b.....
...w......w.
b..w.....b..