हाल ही में मैं एक गेम खेल रहा हूं जिसे अलकाजार कहा जाता है। यह एक बोर्ड पज़ल गेम है जहां आपका लक्ष्य एक दरवाजे से प्रवेश करना है, सभी चौकों से गुजरना है, और दूसरे दरवाजे से बाहर निकलना है। केवल नियम हैं:
- एक बार दर्ज करें, एक बार छोड़ दें;
- सभी वर्गों से गुजरें;
- एक से अधिक बार एक वर्ग से न गुजरें
नीचे दी गई छवि एक अल्केजर बोर्ड का उदाहरण दिखाती है और इसके दाईं ओर, हल की गई पहेली (निश्चित रूप से यह एक आसान है):
आप http://www.theincrediblecompany.com/try-alcazar पर अधिक पहेलियाँ पा सकते हैं और PlayStore (PS: विज्ञापन नहीं) पर गेम डाउनलोड कर सकते हैं ।
मेरी समस्या यह है कि मैंने खेल को लगभग समाप्त कर दिया, सिवाय एक स्तर के। मुझे बस इसे हल करने का कोई तरीका नहीं मिल रहा है। इसलिए मैं जो प्रस्ताव देता हूं वह चुनौती है: एक एल्गोरिथ्म बनाएं जो किसी भी सामान्य 1 सॉल्व करने योग्य 2 अल्केजर स्तर को हल करता है।
बेशक, मैं किसी से भी छवि की व्याख्या करने के लिए छवि पढ़ने और पहेली को हल करने के लिए नहीं पूछ रहा हूँ (या मैं हूँ?)। इसलिए मैंने बॉक्स ड्रॉइंग पात्रों का उपयोग करके उपरोक्त पहेली को फिर से तैयार किया। पहेली और इसका समाधान इस तरह होगा:
╔═══════╗ ╔═══════╗
║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║
║ ║ ║ ║│ │ │║│║
╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠
║ ══╦═╩═╣ ║│══╦═╩═╣
║▒ ▒║▒ ▒║ ║└─┐║┌─┐║
║ ║ ║ ==> ║ │║│ │║
╣▒ ▒║▒ ▒║ ╣┐ │║│ │║
║ ║ ║ ║ ║│║│║│ │║
╣▒║▒ ▒ ▒║ ╣│║└─┘ │║
║ ║ ║ ║│║ │║
║▒ ▒ ▒ ▒║ ║└─────┘║
╚═══════╝ ╚═══════╝
ऊपर के बोर्ड में, ▒
क्या कोशिकाएं भरी जानी हैं।
कोई यह देख सकता है कि कोशिकाओं के बीच एक ऊर्ध्वाधर और क्षैतिज गैब है। ऐसा इसलिए है क्योंकि मुझे दीवारों को जोड़ने के लिए कोशिकाओं के बीच एक स्थान डालना था। इसका मतलब यह है कि केवल महत्वपूर्ण कोशिकाएं ऊपर, नीचे, बाईं ओर और प्रत्येक कोशिका के दाईं ओर होती हैं। सूचना के नुकसान के बिना विकर्णों को हटाया जा सकता है। उदाहरण के लिए, नीचे दिए गए बोर्ड में, दोनों एक ही पहेली का प्रतिनिधित्व करते हैं:
╔════╩╗ ═ ═ ╩
║▒ ▒ ▒║ ║▒ ▒ ▒║
║ ═══ ║ ═
║▒ ▒ ▒║ == ║▒ ▒ ▒║
║ ║
║▒ ▒ ▒║ ║▒ ▒ ▒║
╚╦════╝ ╦═ ══
यह भी समाधान के लिए मान्य है। यही है, यह कोशिकाओं को जोड़ने के लिए आवश्यक नहीं है:
╔════╩╗ ╔════╩╗ ╔════╩╗
║▒ ▒ ▒║ ║┌───┘║ ║┌ ─ ┘║
║ ═══ ║ ║│═══ ║ ║ ═══ ║
║▒ ▒ ▒║ == ║└───┐║ => ║└ ─ ┐║
║ ║ ║ │║ ║ ║
║▒ ▒ ▒║ ║┌───┘║ ║┌ ─ ┘║
╚╦════╝ ╚╦════╝ ╚╦════╝
ऊपर के उदाहरण में, दोनों समाधान समान हैं।
हाँ, परीक्षण के मामले। वे यहाँ हैं:
पहेली १
╔════╩╗ ╔════╩╗
║▒ ▒ ▒║ ║┌ ─ ┘║
║ ═══ ║ ║ ═══ ║
║▒ ▒ ▒║ => ║└ ─ ┐║
║ ║ ║ ║
║▒ ▒ ▒║ ║┌ ─ ┘║
╚╦════╝ ╚╦════╝
पहेली २
╔═════╗ ╔═════╗
║▒ ▒ ▒║ ║┌ ─ ┐║
║ ║ ║ ║ ║ ║
╣▒ ▒║▒║ ╣└ ┐║│║
║ ║ ║ ║ => ║ ║ ║ ║
╣▒║▒ ▒╠ ╣┐║│ │╠
║ ║ ║ ║ ║ ║
║▒ ▒ ▒║ ║└ ┘ │║
╚════╦╝ ╚════╦╝
पहेली ३
╔════╩══╗ ╔════╩══╗
║▒ ▒ ▒ ▒║ ║┌ ┐ └ ┐║
║ ║ ║ ║ ║ ║ ║ ║
╣▒║▒ ▒║▒╠ ╣┘║└ ┐║│╠
║ ╚══ ║ ║ ║ ╚══ ║ ║
║▒ ▒ ▒ ▒╠ => ║┌ ─ ┘ │╠
║ ═══ ║ ║ ═══ ║
║▒ ▒ ▒ ▒║ ║│ ┌ ┐ │║
║ ║ ║ ║ ║ ║
║▒ ▒║▒ ▒║ ║└ ┘║└ ┘║
╚═══╩═══╝ ╚═══╩═══╝
पहेली ४
╔═══════╗ ╔═══════╗
║▒ ▒ ▒ ▒║ ║┌ ┐ ┌ ┐║
║ ║ ║ ║ ║ ║
╣▒ ▒ ▒║▒╠ ╣│ └ ┘║└╠
║ ══╦═╩═╣ ║ ══╦═╩═╣
║▒ ▒║▒ ▒║ ║└ ┐║┌ ┐║
║ ║ ║ => ║ ║ ║
╣▒ ▒║▒ ▒║ ╣┐ │║│ │║
║ ║ ║ ║ ║ ║ ║ ║
╣▒║▒ ▒ ▒║ ╣│║└ ┘ │║
║ ║ ║ ║ ║ ║
║▒ ▒ ▒ ▒║ ║└ ─ ─ ┘║
╚═══════╝ ╚═══════╝
पहेली ५
╔══╩══════╗ ╔══╩══════╗
║▒ ▒ ▒ ▒ ▒║ ║┌ ─ ┐ ┌ ┐║
║ ║ ║ ║ ║ ║
║▒ ▒║▒ ▒ ▒╠ ║└ ┐║└ ┘ │╠
║ ╠════ ║ ║ ╠════ ║
║▒ ▒║▒ ▒ ▒║ => ║┌ ┘║┌ ─ ┘║
║ ║ ║ ║ ║ ║
║▒ ▒║▒ ▒ ▒╠ ║└ ┐║└ ─ ─╠
║ ╠═════╣ ║ ╠═════╣
║▒ ▒║▒ ▒ ▒║ ║┌ ┘║┌ ─ ┐║
║ ║ ║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒║ ║└ ─ ┘ ┌ ┘║
╚══╦═══╦══╝ ╚══╦═══╦══╝
पहेली ६
╔═══════════╗ ╔═══════════╗
║▒ ▒ ▒ ▒ ▒ ▒║ ║┌ ┐ ┌ ┐ ┌ ┐║
║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒║ ║│ └ ┘ └ ┘ │║
║ ═══ ║ ║ ═══ ║
║▒ ▒ ▒ ▒ ▒ ▒║ ║└ ┐ ┌ ─ ─ ┘║
║ ═══ ║ ║ ═══ ║
╣▒ ▒ ▒ ▒ ▒ ▒╠ => ╣┐ │ │ ┌ ┐ ┌╠
║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒║ ║│ │ │ │ │ │║
║ ║ ║ ║ ║ ║ ║ ║
║▒ ▒║▒ ▒║▒ ▒║ ║│ │║│ │║│ │║
║ ║ ║ ║ ║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒║ ║└ ┘ └ ┘ └ ┘║
╚═══════════╝ ╚═══════════╝
पहेली 7
╔════╩════════╦╩╗ ╔════╩════════╦╩╗
║▒ ▒ ▒ ▒ ▒ ▒ ▒║▒║ ║┌ ─ ─ ─ ─ ─ ┐║│║
║ ║ ║ ║ ║ ║ ║ ║ ║ ║
║▒║▒ ▒ ▒ ▒║▒ ▒ ▒║ ║│║┌ ─ ─ ┐║┌ ┘ │║
║ ║ ║ ═══ ║ ║ ║ ║ ║ ═══ ║ ║
║▒ ▒║▒ ▒ ▒ ▒ ▒ ▒╠ ║│ │║┌ ─ ┘ └ ┐ │╠
║ ║ ║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║ ║│ │ └ ┐ ┌ ┐ └ ┘║
║ ║ ║ ══╣ ║ ║ ║ ══╣
║▒ ▒ ▒║▒║▒ ▒ ▒ ▒║ ║│ └ ┐║│║│ └ ─ ┐║
║ ║ ║ ║ ║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║ ║│ ┌ ┘ │ └ ┐ ┌ ┘║
║ ║ ══╣ => ║ ║ ══╣
║▒ ▒ ▒ ▒ ▒ ▒║▒ ▒║ ║└ ┘ ┌ ┘ ┌ ┘║└ ┐║
╠══ ║ ╚══ ║ ╠══ ║ ╚══ ║
║▒ ▒ ▒ ▒ ▒║▒ ▒ ▒║ ║┌ ┐ └ ┐ │║┌ ─ ┘║
║ ║ ║ ║ ║ ║ ║ ║ ║ ║
║▒ ▒ ▒║▒║▒ ▒ ▒ ▒║ ║│ └ ┐║│║│ └ ─ ┐║
║ ║ ║ ║ ╔══ ║ ║ ║ ║ ║ ╔══ ║
║▒║▒ ▒ ▒ ▒║▒ ▒ ▒║ ║│║┌ ┘ │ │║┌ ┐ │║
║ ║ ║ ║ ║ ║ ║ ║ ║ ║
║▒ ▒ ▒ ▒║▒ ▒ ▒ ▒║ ║│ └ ─ ┘║└ ┘ │ │║
║ ╚══ ║ ║ ╚══ ║
║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║ ║└ ─ ─ ─ ─ ─ ┘ │║
╚════╦═╦═╦═════╦╝ ╚════╦═╦═╦═════╦╝
पहेली 8 (क्षमा करें, मेरे पास वास्तव में इसका समाधान नहीं है)
╔══╩╦══╩═══╩═╩═╩═══╩╗
║▒ ▒║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║
║ ║ ║
╣▒ ▒║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║
║ ╚══ ╔══ ╔═══╣
╣▒ ▒ ▒ ▒║▒ ▒ ▒ ▒║▒ ▒╠
║ ║ ╔══ ║ ║
╣▒ ▒ ▒ ▒ ▒ ▒║▒ ▒ ▒ ▒╠
║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒╠
║ ║ ║
╣▒ ▒ ▒ ▒ ▒ ▒║▒ ▒ ▒ ▒╠
║ ╔═══╗ ╚══ ║
╣▒ ▒║▒ ▒║▒ ▒ ▒ ▒ ▒ ▒║
║ ║ ║ ║
╣▒ ▒║▒ ▒║▒ ▒ ▒ ▒ ▒ ▒╠
║ ══╝ ║ ╔══ ║
║▒ ▒ ▒ ▒║▒ ▒ ▒ ▒║▒ ▒║
║ ══╗ ╚══ ╔══ ║ ║
╣▒ ▒ ▒║▒ ▒ ▒║▒ ▒ ▒ ▒╠
║ ║ ║ ║ ║
╣▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║▒ ▒║
║ ═══ ══╗ ║ ║
╣▒ ▒ ▒ ▒ ▒ ▒║▒ ▒ ▒ ▒╠
╠══ ║ ║ ╔══ ║
║▒ ▒║▒ ▒ ▒ ▒ ▒ ▒║▒ ▒╠
║ ╚══ ║ ║ ║ ║
╣▒ ▒ ▒ ▒║▒ ▒║▒ ▒ ▒ ▒╠
║ ║ ║ ║
║▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒║
╚══╦═══╦═══╦═╦═╦═╦═╦╝
इनपुट
जब तक यह इन नियमों का पालन करता है आपके कोड के इनपुट में कोई भी प्रतिनिधित्व हो सकता है:
यह एक ग्राफिकल इनपुट होना चाहिए। इसलिए, उदाहरण के लिए, एक समन्वय सूची को पढ़ना संभव नहीं है।
क्षैतिज दीवारें, ऊर्ध्वाधर दीवारें, और दरवाजे अलग-अलग होने चाहिए, और उन्हें एक दृश्य चरित्र (कोई रिक्त वर्ण नहीं) से बना होना चाहिए।
▒
कारतूस द्वारा प्रतिस्थापित किया जा सकता है। मैंने उन्हें उजागर करने के लिए एक अलग चरित्र का उपयोग किया।
उत्पादन
जब तक यह इन नियमों का पालन करता है तब तक आउटपुट का कोई भी प्रतिनिधित्व हो सकता है:
यह एक ग्राफिकल आउटपुट होना चाहिए। अर्थात व्यक्ति जिसको देखकर रास्ता बना सकता है।
नियम नंबर एक का अर्थ है कि पथ के चरित्र भिन्न हैं। यही है, कम से कम 6 पथ वर्ण होने जा रहे हैं; क्षैतिज, ऊर्ध्वाधर और कोने।
मान्य होने के उत्तर के लिए, आउटपुट को सभी सेल (मेरे प्रतिनिधित्व में) के साथ इनपुट (स्पष्ट रूप से) के समान बोर्ड होना चाहिए
▒
। कोशिकाओं के बीच अंतराल भरना वैकल्पिक है।
स्कोरिंग
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।
1 अलकज़ार के कुछ स्तर हैं जिनमें वैकल्पिक कोशिकाएँ और सुरंगें हैं। इन पर विचार नहीं किया जाएगा।
2 कुछ ऐलज़र बोर्ड हैं जो असंभव हैं।