এলারের অ্যালগরিদম গোলকধাঁধা জেনারেটর
প্রকাশিত: ১৬ ফেব্রুয়ারী, ২০২৫ এ ৮:০৯:৩৮ PM UTC
সর্বশেষ আপডেট: ১২ জানুয়ারী, ২০২৬ এ ৯:০৪:২২ AM UTC
Eller's Algorithm Maze Generator
এলারের অ্যালগরিদম হল একটি মেজ জেনারেশন অ্যালগরিদম যা সারি-বাই-সারি পদ্ধতি ব্যবহার করে দক্ষতার সাথে নিখুঁত মেজ (কোনও লুপ ছাড়াই এবং যেকোনো দুটি পয়েন্টের মধ্যে একটি একক পথ ছাড়াই মেজ) তৈরি করে। এটি ক্রুসকালের অ্যালগরিদমের মতো মেজ তৈরি করে, তবে এটি একবারে কেবল একটি সারি তৈরি করে, পুরো মেজটি মেমরিতে সংরক্ষণ করার প্রয়োজন ছাড়াই। এটি খুব সীমিত সিস্টেমে খুব বড় মেজ তৈরি করতে এবং পদ্ধতিগত সামগ্রী তৈরির জন্য এটিকে কার্যকর করে তোলে।
একটি নিখুঁত গোলকধাঁধা হল এমন একটি গোলকধাঁধা যেখানে গোলকধাঁধার যেকোনো বিন্দু থেকে অন্য যেকোনো বিন্দুতে ঠিক একটি পথ থাকে। এর মানে হল আপনি বৃত্তাকারে ঘুরে বেড়াতে পারবেন না, তবে আপনি প্রায়শই অচল প্রান্তের মুখোমুখি হবেন, যা আপনাকে ঘুরে ফিরে যেতে বাধ্য করবে।
এখানে তৈরি করা গোলকধাঁধা মানচিত্রগুলিতে কোনও শুরু এবং শেষ অবস্থান ছাড়াই একটি ডিফল্ট সংস্করণ রয়েছে, তাই আপনি নিজেই সেগুলি সিদ্ধান্ত নিতে পারেন: গোলকধাঁধার যেকোনো বিন্দু থেকে অন্য যেকোনো বিন্দুতে একটি সমাধান থাকবে। আপনি যদি অনুপ্রেরণা চান, তাহলে আপনি একটি প্রস্তাবিত শুরু এবং শেষ অবস্থান সক্ষম করতে পারেন - এবং এমনকি উভয়ের মধ্যে সমাধানও দেখতে পারেন।
এলারের অ্যালগরিদম সম্পর্কে
এলারের অ্যালগরিদম ডেভিড এলার দ্বারা প্রবর্তিত হয়েছিল।
এই অ্যালগরিদমটি সারি সারি মেজ জেনারেশনের দক্ষ পদ্ধতির জন্য উল্লেখযোগ্য, যা এটিকে অসীম মেজ বা রিয়েল-টাইমে তৈরি মেজগুলির জন্য আদর্শ করে তোলে। এটি সাধারণত পদ্ধতিগত বিষয়বস্তু তৈরি এবং মেজ-জেনারেশন সাহিত্যে উদ্ধৃত করা হয়, তবে আমি এর মূল প্রকাশনার বিশদ বিবরণের প্রাথমিক উৎস খুঁজে পাইনি।
গোলকধাঁধা তৈরির জন্য এলারের অ্যালগরিদম কীভাবে কাজ করে
এলারের অ্যালগরিদম একের পর এক সারি প্রক্রিয়া করে, সংযুক্ত কোষের সেটগুলি বজায় রাখে এবং সংশোধন করে। এটি লুপগুলি এড়িয়ে সংযোগ নিশ্চিত করে এবং এটি দক্ষতার সাথে গোলকধাঁধাটিকে নীচের দিকে প্রসারিত করে।
এটি তাত্ত্বিকভাবে অসীম গোলকধাঁধা তৈরি করতে ব্যবহার করা যেতে পারে, তবে উৎপন্ন গোলকধাঁধাটি আসলে সমাধানযোগ্য কিনা তা নিশ্চিত করার জন্য, গোলকধাঁধাটি শেষ করার জন্য কোনও এক সময়ে "চূড়ান্ত সারি" যুক্তিতে স্যুইচ করা প্রয়োজন।
ধাপ ১: প্রথম সারিটি শুরু করুন
- সারির প্রতিটি কক্ষের জন্য একটি অনন্য সেট আইডি বরাদ্দ করুন।
ধাপ ২: কিছু সংলগ্ন ঘর অনুভূমিকভাবে যুক্ত করুন
- একই সেট আইডিতে সেট করে সংলগ্ন কোষগুলিকে এলোমেলোভাবে মার্জ করুন। এটি নিশ্চিত করে যে অনুভূমিক প্যাসেজ রয়েছে।
ধাপ ৩: পরবর্তী সারিতে উল্লম্ব সংযোগ তৈরি করুন
- সারিতে প্রদর্শিত প্রতিটি সেটের জন্য, কমপক্ষে একটি ঘর নীচের দিকে সংযুক্ত হতে হবে (সংযোগ নিশ্চিত করার জন্য)।
- পরবর্তী সারিতে সংযোগ স্থাপনের জন্য প্রতিটি সেট থেকে এলোমেলোভাবে এক বা একাধিক ঘর নির্বাচন করুন।
ধাপ ৪: পরবর্তী সারিতে যান
- নীচের সংশ্লিষ্ট কক্ষগুলিতে একই সেট আইডি বরাদ্দ করে উল্লম্ব সংযোগগুলি এগিয়ে নিয়ে যান।
- যেকোনো অনির্ধারিত কক্ষে নতুন সেট আইডি বরাদ্দ করুন।
ধাপ ৫: শেষ সারিতে পৌঁছানো পর্যন্ত ধাপ ২-৪ পুনরাবৃত্তি করুন।
- সারি সারি প্রক্রিয়াকরণ চালিয়ে যান।
ধাপ ৬: চূড়ান্ত সারিটি প্রক্রিয়া করুন
- বাকি আলাদা সেটগুলিকে একত্রিত করে নিশ্চিত করুন যে শেষ সারির সমস্ত ঘর একই সেটের অন্তর্গত।
আরও পড়ুন
যদি আপনি এই পোস্টটি উপভোগ করেন, তাহলে আপনার এই পরামর্শগুলিও পছন্দ হতে পারে:
- বৃক্ষ বৃদ্ধির অ্যালগরিদম গোলকধাঁধা জেনারেটর
- ক্রুসকালের অ্যালগরিদম গোলকধাঁধা জেনারেটর
- রিকার্সিভ ব্যাকট্র্যাকার গোলকধাঁধা জেনারেটর
