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