বব অপহরণ করেছে এবং একটি ধাঁধা আটকে আছে। আপনার কাজ হ'ল তাকে উপায় খুঁজে বের করতে সহায়তা করা। তবে এটি যেহেতু খুব অন্ধকার এবং ভয়ঙ্কর গোলকধাঁধা তাই সে কিছুই দেখতে পাচ্ছে না। তিনি কেবল তখনই দেওয়াল অনুভব করতে পারেন যখন তিনি এটির দিকে চলে যান এবং যখন তিনি প্রস্থানটি পেয়েছেন তখন জানেন তবে এর চেয়ে আরও কিছু জানেন না।
যেহেতু তাকে আপনার প্রোগ্রামটি মেমোরি দিয়ে চালাতে হবে, তাই এটি যতটা সম্ভব সংক্ষিপ্ত হতে হবে।
দ্রষ্টব্য: আমি http://acmgnyr.org/year2016/problems.shtml থেকে এই সমস্যাটি নিয়েছি , তবে এটিকে কিছুটা অভিযোজিত করেছি এবং বিচারক প্রোগ্রাম / পরীক্ষার মামলাগুলি নিজে লিখেছি।
সবিস্তার বিবরণী
- এটি একটি ইন্টারেক্টিভ সমস্যা, সুতরাং আপনার প্রোগ্রামটি আউটপুট স্টাডাউটে চলে যাবে এবং স্টিডিনের প্রতিক্রিয়া গ্রহণ করবে।
- প্যাচসমূহ তোমার প্রোগ্রাম করতে পারেন আউটপুট এক
right
,left
,down
,up
। - এরপরে এটি নিম্নলিখিতগুলির মধ্যে একটি হিসাবে ইনপুট হিসাবে পাবেন:
wall
- এর অর্থ হ'ল বব কোনও দেয়ালে আঘাত করেছে। বব একই জায়গায় থাকবে।solved
- বব বেরিয়েছে! আপনার প্রোগ্রামটি এখন আর কিছু মুদ্রণ না করে প্রস্থান করা উচিত।ok
- বব প্রদত্ত দিকটিতে যেতে সক্ষম হয়েছিল।
- যদি গোলকধাঁধাঁটির কোনও প্রস্থান
no exit
না হয় তবে আপনার প্রোগ্রামটি ববকে জানাতে দেয় যে তাকে ছেড়ে দেওয়া উচিত output আপনার প্রোগ্রামটি অন্য কিছু মুদ্রণ না করেই প্রস্থান করা উচিত। - যেহেতু বব বেরোনোর তাড়াহুড়া করছে, আপনার প্রোগ্রামটি কোনও বহিরাগত পদক্ষেপ নেওয়া উচিত নয়। অন্য কথায়, আপনার প্রোগ্রামটিকে একই স্কোয়ার থেকে দু'বার একই দিক থেকে সরানোর অনুমতি নেই ।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম প্রোগ্রামের জয়!
উদাহরণ
নিম্নলিখিত উদাহরণগুলিতে, 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
। - মেজগুলি উপরের থেকে একই ফর্ম্যাটে পৃথক ফাইলে রয়েছে।
- এটি উপরে তালিকাভুক্ত সমস্ত শর্তাদি পরীক্ষা করে এবং আপনার সমাধানটি যদি কোনও লঙ্ঘন করে তবে আপনাকে অবহিত করে।
- আপনি এটি দিয়ে অতিরিক্ত ডায়াগনস্টিক তথ্য মুদ্রণ করতে পারেন
python mazechecker.py -d ./mazesolver
। - আপনি এখানে একটি জিপ করা
mazes
ফোল্ডারটি পেতে পারেন । আপনি চাইলে এতে নিজের নিজস্বও যুক্ত করতে পারেন।
solved
আউটপুট দেওয়ার সময় আমরা কী পাই no exit
? যদি তাই হয় তবে নিয়মের মধ্যে দয়া করে কেবল পরীক্ষার ক্ষেত্রে নয়!
x,y
নিয়ে এসেছি up
, সাড়া দিয়ে wall
, right
আবার সাড়া দিয়ে wall
, আমি আবার চেষ্টা up
করতে পারি, বা আমি এখনও এই বর্গ থেকে সরেনি যেহেতু শুধুমাত্র left
এবং down
এখনও উপলব্ধ?