লিফট সহ বাড়ির মানচিত্র গোলকধাঁধা সমাধান করা যায় তা নিশ্চিত করুন?


13

আমার গেমটিতে আমরা পাশের একটি ঘরের মেঝে দেখতে পাই এবং নায়ক লিফ্ট নিতে পারে - একটি লিফট হয় উপরে উঠে যায় (পরের লিফ্টের উপরের দিকে) বা নীচে (নীচের দিকে পরবর্তী লিফটে), তীরের উপর নির্ভর করে দেখানো হয়েছে এবং সর্বদা দুটি লিফ্ট সংযুক্ত থাকে। হিরো একমাত্র পথটি উল্লম্বভাবে চলতে পারে, যদিও সে নির্দ্বিধায় অনুভূমিকভাবে চলতে পারে। বাড়ির মানচিত্রটি এলোমেলো আকারের 11x5 গ্রিড যা বিভিন্ন আইটেম সহ, এবং বাম দিকে, ডানদিকে ডানদিকে এবং কখনও কখনও দুটি মাঝারি পজিশনের একটিতে অনিবার্য দেয়াল:

উত্তোলন উদাহরণ

আমার প্রশ্ন: আমি কীভাবে নিশ্চিত করতে পারি যে মানচিত্রটি সর্বদা এলোমেলোভাবে এখনও সর্বদা দ্রবণযোগ্য এবং নীচের তলার বাম দিক থেকে শুরু হওয়া নায়কটি সর্বদা উপরের তলদেশের কোনও upর্ধ্বমুখী লিফ্টের মাধ্যমে এটিকে ছেড়ে যেতে পারে?

উন্নয়নের জন্য লুয়া ভাষাটি ব্যবহার করছি এটির পক্ষে মূল্য। অনেক ধন্যবাদ!

উত্তর:


14

আপনি যা করতে চান তা এমন একটি গ্রাফ তৈরি করা যাতে প্রতিটি নোড একটি লিফট অবস্থান এবং তাদের মধ্যবর্তী প্রান্তগুলির অর্থ আপনি সেখানে হাঁটতে / উঠতে পারবেন। একবার গ্রাফ তৈরি করার পরে আপনি dfs / bfs ব্যবহার করে দেখতে পারবেন যে আপনি শুরু নোড থেকে শেষ নোডে যেতে পারেন কিনা।

উপরের উদাহরণটি ব্যবহার করে আমি গ্রাফটি কেমন দেখাচ্ছে তার একটি চিত্র তৈরি করেছি। সবুজ চেনাশোনাগুলির অর্থ সেখানে একটি লিফট রয়েছে এবং সবুজ রেখার অর্থ আপনি নোড থেকে নোডে ভ্রমণ করতে পারবেন।

নোড


ধন্যবাদ, এটি খুব দরকারী! আমার প্রশ্নটিতে আমার আরও জোর দেওয়া উচিত ছিল যে মানচিত্রটিও প্রথম স্থানে তৈরি করা দরকার। আমি এখন যা ভাবছি তা হ'ল যদি এটি সহজ না হয় - বরং সম্পূর্ণরূপে র্যান্ডমাইজড লিফট / প্রাচীরের সংমিশ্রণগুলি বারবার তৈরি করা এবং তাদের দ্রাব্যতা পরীক্ষা করার চেয়ে - ঘরে নায়কের মতো অ্যালগরিদম পদক্ষেপ নেওয়া এবং এইভাবে র্যান্ডম লিফট এবং দরজা তৈরি করুন (উদাহরণস্বরূপ, এলোমেলো লিফট দূরত্ব এবং বাম-ডান দিকে ঘুরিয়ে নেওয়ার পাশাপাশি প্রাচীর যুক্ত করে)। "0, 4 বা 8
টার্নে ডানদিকে চলুন

@ ফিলিপলিনসেন হ'ল গ্রাফের ধাঁধা তৈরির জন্য মূলত "এলোমেলোভাবে গভীরতা-প্রথম অনুসন্ধান" পদ্ধতি।
কেভিন রেড

5

আপনার যা আছে এবং একটি সাধারণ গোলকধাঁধার মধ্যে পার্থক্যটি কেবল এটির যে এটির সাথে আনুভূমিক সংযোগ রয়েছে ically আমি মনে করি আপনার যা দেখানো উচিত তা হ'ল গ্রাফ-ভিত্তিক গোলকধাঁধা জেনারেশন অ্যালগরিদম । সাধারণ 2 ডি গোলকধাঁধার চেয়ে আপনার খুব সহজেই "সংলগ্ন কক্ষগুলি" বা "সম্ভাব্য দেয়াল" এর একটি বৃহত্তর সেট থাকা দরকার, এতে ইতিমধ্যে অন্তর্বর্তী লিফ্ট নেই এমন প্রতিটি ফ্লোর-গ্রিড-কোষের উল্লম্বভাবে সংযুক্ত জোড় সংলগ্ন হয়। আপনি এটিকে একটি গ্রাফ হিসাবে মডেল করতে পারেন যেখানে সুনির্দিষ্ট লিফট প্রান্ত যুক্ত করে ঘটনাক্রমে অন্যান্য সম্ভাব্য লিফটের প্রান্তগুলি মুছে দেয়; কিছু অ্যালগরিদম এটি দ্বারা বিভ্রান্ত হতে পারে, কিন্তু অন্যদের দ্বারা নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.