2 ডি গ্রিড মানচিত্রে রাস্তা / নদী উত্পাদন


12

এটি একটি নবাগত প্রশ্ন, কিন্তু এখানে এটি যায়:

আমার মানচিত্রটি 2 ডি গ্রিড এবং আমি রাস্তা এবং নদী উত্পন্ন করতে চাই। শুরু থেকে শেষের পয়েন্ট পর্যন্ত রুটটি অবশ্যই টাইলসের সংখ্যার অনুকূল রুট হওয়া উচিত নয়। পরিবর্তে, তাদের এলোমেলোতার একটি নির্দিষ্ট স্তর (টার্ন) হওয়া উচিত।

এই জাতীয় জিনিসের জন্য কি কোনও স্ট্যান্ডার্ড অ্যালগরিদম আছে?

চিয়ার্স!

হালনাগাদ:

এটি গ্রিডে ওজন নিয়ে খেলতে এবং জগ্রাট লাইব্রেরিটি ব্যবহার করে একটি সংক্ষিপ্ত পথ অ্যালগরিদম (বেলম্যান-ফোর্ড) প্রয়োগ করার ফলাফল। আমি ডোনুটজ এর উত্তর দিয়েছিলাম।

http://pastebin.com/AGQGK5ik


মানচিত্রে কোনও বাধা আছে কি?
মাইকেলহাউস

এখনও নয়, নদীটি স্থাপন করা হবে প্রথম বাধা।
মার্কোস ফ্রেগাকাকিস

উত্তর:


18

আপনি এ * ব্যবহার করে অনুকূল পাথ তৈরি করতে পারেন, তারপরে মিডপয়েন্ট স্থানচ্যুতিতে এটি বিকৃত করুন।

এখানে চিত্র বর্ণনা লিখুন

এটি আপনার শেষ পয়েন্টগুলি পূরণ করেছে এবং এটি আপনাকে এলোমেলোভাবে একটি দুর্দান্ত পরিমাণে নিয়ন্ত্রণ করার অনুমতি দেবে। উদাহরণস্বরূপ, আমি নদীর যতটা রাস্তা এলোমেলো করব না। যে কোনও বুদ্ধিই রাস্তাঘাট তৈরি করে তা সাধারণত এটি সম্পর্কে সর্বোত্তম হওয়ার চেষ্টা করে।

আপনার মানচিত্রে যদি বাধা থাকে তা নিশ্চিত করার জন্য যত্ন নিন, আপনি প্রতিটি পুনরাবৃত্তির পরে পরীক্ষা করে দেখুন যে আপনি এই বাধাগুলি অতিক্রম করছেন না।

আরেকটি পদ্ধতি হ'ল সর্বোত্তম পথটি সন্ধান করার পরে পার্লিন শব্দটি তৈরি করা , তারপরে উত্পন্ন শব্দটির উপর ভিত্তি করে আপনার পয়েন্টগুলি স্থানান্তর করুন। উদাহরণস্বরূপ, এই শব্দটি ব্যবহার করে:

এখানে চিত্র বর্ণনা লিখুন

তারপরে লাল রঙের সর্বোত্তম পথ এবং নীল রঙে স্থানান্তরিত পথ দিয়ে দেখান:

এখানে চিত্র বর্ণনা লিখুন

লক্ষ্য করুন কীভাবে স্থানান্তরিত পথটি আওয়াজের অন্ধকার অঞ্চলে "স্থিত" হয়ে আছে। একই উপত্যকা দিয়ে কোনও নদী প্রবাহিত হতে পারে।

পার্লিন শব্দের পছন্দের একটি সুবিধা হ'ল আপনি নিজের বাধাগুলি ফ্যাক্ট করতে পারেন এবং এটিকে অ্যালগোরিদমের অংশ হিসাবে এড়াতে পারেন।


1
আপনি কীভাবে এই পয়েন্টটি গোলমালের উপর ভিত্তি বদল করবেন?
খোই

1
এটি নির্ভর করে আপনি কীভাবে শব্দটি সঞ্চয় করছেন এবং উত্পন্ন রেখাটি। আপনি প্রথমে কেন্দ্রে লাইনটির নিকটতম / সর্বনিম্ন শব্দটি সূক্ষ্ম সন্ধান করতে পারেন, তারপরে কেন্দ্র এবং প্রান্তের মধ্যবর্তী পয়েন্টগুলিতে এবং আরও কিছু।
MichaelHouse

3

এ * অ্যালগোরিদম আপনাকে তাদের উপযুক্ততা ইঙ্গিত করে টাইলগুলিতে মান নির্ধারণের অনুমতি দেবে। উদাহরণস্বরূপ, আপনি নদীগুলির জন্য কম জমি, রাস্তার জন্য সমতল জমি (তবে জলাভূমি নয়) এর জন্য সর্বনিম্ন ব্যয়ের স্কোর বরাদ্দ করতে পারেন এবং তার ভিত্তিতে উত্পন্ন করতে পারেন। এটি আপনাকে সবচেয়ে স্বল্পতম রুট দেয় না তবে এটি আপনাকে সবচেয়ে কার্যকর রুট দেয়। আপনার টাইল মানগুলিতে কিছুটা এলোমেলো প্রয়োগ করুন এবং আপনি কিছু উপ-অনুকূল রুট পেতে পারেন।


2

উচ্চতা একটি ফ্যাক্টর যখন সম্পর্কে কি? আমি হীরা স্কোয়ার অ্যালগরিদম দিয়ে একটি উচ্চতা ম্যাপ তৈরি করতে পারি। আমি প্রতিটি টালিতে কিছু এলোমেলো জল যোগ করার কথা ভাবছিলাম এবং তারপরে পুনরাবৃত্তি করছিলাম এবং এটি সমস্ত স্থির না হওয়া অবধি নিম্ন উঁচুতে জল নিয়ে যাব, তবে এটি ধীর হয়ে যাবে এবং সম্ভবত নদী নয়, হ্রদ তৈরি করবে।

আমি প্রতিটি টাইলের নরমালটি দেখার কথাও ভাবছিলাম। 2 টি স্বাভাবিক যদি একে অপরের দিকে নির্দেশ করে তবে অবশ্যই এটি একটি উপত্যকা হবে। কোন উপত্যকায় জল জমে যেত। যদি তারা একই দিকে বা একে অপরের থেকে দূরে থাকে তবে জল সংগ্রহ করবে না। এটি সম্ভবত পুনরাবৃত্তির পদ্ধতির চেয়ে দ্রুত হবে তবে লেকগুলি তৈরি করতে পারে না কেবলমাত্র নদী। টাইলসের প্রতিটি উদাহরণকে একে অপরের দিকে নদীতে পরিণত করা থেকে বিরত রাখতে আমাকে এটিকে ঘিরে খেলতে হবে।


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