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