मुझे वास्तव में फिसलने वाली टाइल पहेलियाँ पसंद हैं, लेकिन हाल ही में, मेरे पास उनके लिए समय नहीं था। इसलिए, मुझे एक स्लाइडिंग-टाइल पहेलियाँ, विशेष रूप से क्लॉटस्की पहेली के मेरे फिक्स देने के लिए एक कार्यक्रम की आवश्यकता है।
आपका इनपुट निम्न प्रारूप में होगा:
#######
#001gg#
##.222#
.######
जहां #
दीवारों का प्रतिनिधित्व करता है, .
एक खुले क्षेत्र का g
प्रतिनिधित्व करता है, लक्ष्य का प्रतिनिधित्व करता है, और आस-पास की संख्या विभिन्न ब्लॉकों का प्रतिनिधित्व करती है। आप मान सकते हैं कि:
- 10 से अधिक ब्लॉक नहीं होंगे
- एक ही नंबर के साथ दो ब्लॉक नहीं होंगे
- सभी ब्लॉक दीवारों द्वारा संलग्न किए जाएंगे
- ग्रिड आयताकार है
0
ब्लॉक बड़ा पर्याप्त लक्ष्य वर्गों के सभी को कवर करने के लिए है।- एक वैध समाधान है
आपको चालों के एक क्रम को वापस करने की आवश्यकता है जो 0
ब्लॉक को लगाएगी ताकि यह सभी गोल वर्गों को कवर करे। ब्लॉक दीवारों या अन्य ब्लॉकों से नहीं गुजर सकते। उपरोक्त पहेली के लिए, एक उपयुक्त अनुक्रम होगा
2L,1R,1R,1D,0R,0R,0R
जबकि 2
ब्लॉक 1 वर्ग बाएँ ले जाने का प्रतिनिधित्व करता है , 1
ब्लॉक 2 वर्ग दाएँ (लक्ष्य के ऊपर) फिर 1 वर्ग नीचे, और फिर 0
3 वर्ग दाएँ ब्लॉक।
वास्तव में कई सीक्वेंस हैं जो उपरोक्त समस्या के लिए काम करेंगे, और उनमें से कोई भी उत्पादन स्वीकार्य है। आपका समाधान इष्टतम होना चाहिए, जिसका अर्थ है कि यह एक अनुक्रम का उत्पादन करना चाहिए जो पहेली को यथासंभव कम चरणों में हल करता है।
अनुक्रम को ऊपर के रूप में मुद्रित किया जाना चाहिए, लेकिन अल्पविराम, न्यूलाइन या अंतरिक्ष को अलग किया जा सकता है। मुझे परवाह नहीं है अगर वहाँ अल्पविराम या व्हॉट्सएप हैं। आपको उचित समय में आउटपुट का उत्पादन करना चाहिए (नीचे पहेली पर अधिकतम 120 सेकंड)।
पहेली 1:
..####..
..#00#..
###00###
#......#
#.1122.#
##3124##
.#3344#.
.##55##.
..#gg#..
..####..
पहेली 2:
######
#1002#
#1002#
#3445#
#3675#
#8gg9#
######
पहेली ३:
.####.
##1g##
#22g3#
#4255#
#4.56#
#.006#
#7008#
######
पहेली 4:
.####.
##00##
#.00g#
#.0.1#
#..g2#
######
यह कोड-गोल्फ है, इसलिए सबसे छोटा समाधान (बाइट्स में) जीतता है!