बॉब का अपहरण हो गया और वह एक चक्रव्यूह में फंस गया। आपका काम उसे रास्ता निकालने में मदद करना है। लेकिन जब से यह एक बहुत ही अंधेरा और डरावना भूलभुलैया है, वह कुछ भी नहीं देख सकता है। वह केवल दीवारों को महसूस कर सकता है जब वह उसमें दौड़ता है, और जानता है कि कब उसने बाहर निकल पाया है, लेकिन इससे अधिक कुछ भी नहीं जानता है।
चूँकि उसे आपके प्रोग्राम को मेमोरी द्वारा चलाना है, इसलिए इसे जितना संभव हो उतना छोटा होना चाहिए।
नोट: मैंने इस समस्या को http://acmgnyr.org/year2016/problems.shtml से लिया है , लेकिन इसे थोड़ा अनुकूलित किया है, और जज प्रोग्राम / टेस्ट मामलों को स्वयं लिखा है।
विशिष्टता
- यह एक इंटरएक्टिव समस्या है, इसलिए आप प्रोग्राम को स्टडआउट में आउटपुट करेंगे, और स्टैडिन से प्रतिक्रियाएं लेंगे।
- चालों के अपने कार्यक्रम कर सकते हैं उत्पादन एक
right
,left
,down
,up
। - इसके बाद निम्नलिखित में से एक इनपुट के रूप में मिलेगा:
wall
- इसका मतलब है कि बॉब ने एक दीवार पर प्रहार किया है। बॉब उसी जगह पर रहेंगे।solved
- बॉब ने बाहर निकल लिया! आपका कार्यक्रम अब किसी और चीज को छापे बिना भी बाहर निकल जाना चाहिए।ok
- बॉब दी गई दिशा में आगे बढ़ने में सक्षम था।
- यदि भूलभुलैया में कोई निकास नहीं है, तो आपके प्रोग्राम को
no exit
बॉब को यह बताने के लिए आउटपुट देना चाहिए कि उसे हार मान लेनी चाहिए। आपके कार्यक्रम को फिर कुछ और छापे बिना बाहर निकल जाना चाहिए। - चूंकि बॉब बाहर निकलने की जल्दी में है, इसलिए आपके कार्यक्रम में कोई बाहरी कदम नहीं होना चाहिए। दूसरे शब्दों में, आपके प्रोग्राम को एक ही वर्ग से दो बार एक ही दिशा में जाने की अनुमति नहीं है ।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा कार्यक्रम जीतता है!
उदाहरण
निम्नलिखित उदाहरणों में, S
शुरुआती वर्ग X
है, निकास है, #
एक दीवार है, और रिक्त स्थान वैध वर्ग हैं। चूंकि एक भी सही उत्तर नहीं है, ये केवल एक समाधान के उदाहरण हैं। यह भी ध्यान दें कि भूलभुलैया के चित्र सिर्फ आपके देखने के लिए हैं, और आपके प्रोग्राम को इनपुट के रूप में नहीं मिलेगा।
########
#S #
###### #
# #
#X#
right
ok
right
ok
right
ok
right
ok
right
ok
right
wall
down
ok
right
wall
down
ok
right
wall
down
solved
#####
# S #
#####
right
ok
right
wall
down
wall
up
wall
left
ok
down
wall
up
wall
left
ok
down
wall
up
wall
left
wall
right
ok
no exit
solved
###############################
#S #
############## ### #
# #X# #
# #
##################
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
ok
right
wall
down
ok
right
wall
down
ok
right
wall
down
ok
right
wall
down
wall
left
ok
down
wall
up
ok
up
ok
left
ok
down
ok
down
ok
down
wall
left
ok
down
wall
up
ok
up
ok
left
ok
down
ok
down
ok
down
wall
left
ok
down
wall
up
ok
up
ok
left
wall
down
ok
left
wall
down
ok
left
ok
down
wall
up
wall
left
ok
down
wall
up
solved
चेकर कार्यक्रम
- मैंने पायथन में एक समाधान परीक्षक लिखा है। आप इसे https://gist.github.com/Maltysen/f0186019b3aa3812d812f8bb984fee19 पर देख सकते हैं ।
- इसे वैसे ही चलाएं
python mazechecker.py ./mazesolver
। - यह एक फ़ोल्डर में सभी mazes पर अपने कार्यक्रम का परीक्षण करेगा
mazes
। - मेज़ ऊपर से एक ही प्रारूप में अलग-अलग फाइलों में हैं।
- यह ऊपर सूचीबद्ध सभी शर्तों की जांच करता है, और यदि आपका समाधान किसी भी उल्लंघन करता है, तो आपको सूचित करता है।
- आप इसके साथ अतिरिक्त नैदानिक जानकारी प्रिंट कर सकते हैं
python mazechecker.py -d ./mazesolver
। - आप यहाँ एक ज़िपित
mazes
फ़ोल्डर पा सकते हैं । आप चाहें तो इसमें अपना खुद का ऐड भी कर सकते हैं।
solved
आउटपुट कब मिलता है no exit
? यदि ऐसा है तो कृपया नियमों में ही बताएं, न केवल परीक्षण मामलों में!
x,y
और up
जवाब के साथ wall
, right
फिर जवाब के साथ wall
, मैं फिर से कोशिश कर सकता हूं up
, या केवल left
और down
अभी भी उपलब्ध हैं क्योंकि मैं अभी तक इस वर्ग से स्थानांतरित नहीं हुआ हूं?