উত্তর:
আপনি কি লয়েডের অ্যালগরিদম চেষ্টা করেছেন ? পদ্ধতিটি বেশ সহজ, এবং মোটামুটি নিয়মিত দেখার অঞ্চলগুলি তৈরি করবে (আপনি কতগুলি পুনরাবৃত্তি চালান তার উপর নির্ভর করে)।
একটি সুন্দর চেহারার মানচিত্র তৈরি করতে আপনাকে খুব বেশি দিন চালাতে হবে না। এই উদাহরণের জন্য কেবল তিনটি পুনরাবৃত্তি প্রয়োজন।
আপনি চেষ্টা করতে পারেন একটি সহজ উপায়।
n
হেক্সেস নির্বাচন করুন । প্রত্যেকে একটি গ্রুপ শুরু করবে।আমি পরীক্ষা করিনি তবে এর দ্বীপপুঞ্জ তৈরি করা উচিত এবং কিছুটা দীর্ঘ পাতলা ধনুর্বন্ধনী এড়ানো উচিত। এছাড়াও, সম্ভবত প্রতিবেশীদের সীমানা থাকবে তবে অগত্যা নয় যে প্রত্যেকে একে অপরের সংস্পর্শে থাকবে, সেই ঘনত্বের মান নির্ভর করবে n
।
কিছু গোষ্ঠী অন্যরাও কোণঠাসা হয়ে থাকতে পারে এবং 20 টিরও কম আকারে পৌঁছতে পারে, আপনি একে অপরের ন্যূনতম দূরত্বে স্টার্টার হেক্সেসের স্পোং করে বর্ধিত স্থান নিশ্চিত করতে পারেন।
প্রয়োজন অনুসারে পরীক্ষা এবং টুইট করুন।
এছাড়াও, এই সমস্যার সাথে সম্পর্কিত নয় তবে হেক্সেসের সাথে কাজ করার জন্য খুব দরকারী, এই পৃষ্ঠাটি দেখুন: http://www.redblobgames.com/grids/hexagons/#basics
এটি একক স্থানে হেক্স তথ্য সম্পর্কিত পুরো গুচ্ছকে একত্রিত করে একটি দুর্দান্ত দৃশ্য।
আমি অবশ্যই মনে করি যে কোনও ধরণের গ্রাফ কাঠামো এটি সম্ভব করে তুলবে। মূলত দুটি হেক্স নোডের মধ্যে একটি প্রান্ত তৈরি করুন যদি তারা পুরো মানচিত্রটি অনুকরণ করার জন্য একে অপরের পাশে থাকে। তবে আমি নিশ্চিত নই যে সেই মানচিত্রের মধ্যে একটি "দেশ" উত্পন্ন করার জন্য সঠিক অ্যালগরিদম। জিনিসটি হল, আপনি কীভাবে দেশটিকে "চেহারা" দিতে চান তার উপর নির্ভর করে আপনার বিভিন্ন অ্যালগোরিদম প্রয়োজন।
আমার মাথার শীর্ষে, আমি একটি পয়েন্ট বাছাই এবং সেখান থেকে বাহিরের দিকে এগিয়ে যাওয়ার পরামর্শ দেব, আপনার "ক্রমবর্ধমান দেশ" এর মধ্যে একটি এলোমেলো টাইল বাছাই যা দেশের অংশ নয় adj
আপনি কী ধরণের দেশ দেখতে চান তার উপর নির্ভর করে অ্যালগরিদমগুলি স্যুইচ আউট করার জন্য একটি কৌশল প্যাটার্ন ব্যবহার করা যেতে পারে। http://en.wikedia.org/wiki/Strategy_ Pattern অর্থাত আপনি চিলির মতো পাতলা উপকূলীয় দেশ চান? অথবা আপনি কি এমন কিছু চান যা আরও গোল এবং অন্তর্ভুক্ত থাকে?
গ্রাফের বৈশিষ্ট্যগুলি আপনাকে শেষ "দেশ" এর মতো দেখতে চাইলে কৌতুক দেওয়ার অনুমতি দিতে পারে: http://en.wikedia.org/wiki/Eccentricity_(راف_theory)
একটি বড় দেশ চান? গ্রাফের বৈশিষ্ট্যগুলি টুইঙ্ক করুন এবং উত্পন্ন দেশটিকে (যা কেবল একটি গ্রাফ) জোর করে এমন বৈশিষ্ট্যগুলি দিতে বাধ্য করুন যা এটি আপনাকে "চেহারা" দেয়।
সর্বশেষে তবে কম নয়, গ্রাফগুলিও দেশগুলির মধ্যে সীমানা নির্ধারণের জন্য খুব কার্যকর হবে useful দেশগুলি একে অপরের সাথে সীমানা লাগলে আপনি দুটি গ্রন্থের মধ্যে একটি সংযোগ রয়েছে এমন একটি গ্রাফ তৈরি করতে পারেন। এটি আপনার গেমের কিছু ধরণের বিভাজনের জন্য কার্যকর হতে পারে এবং বিকাশের পাশাপাশি আপনাকে কিছু জিনিস সম্ভবত আরও অনুকূল করতে দেয়।
একটি ছোট নোট: আপনি বলেছেন যে 'বিভিন্ন আকারের হলেও সমান আকারের দেশগুলির সাথে বাস্তব জীবনের মানচিত্রের মতো দেখায়) তবে' বাস্তব 'দেশগুলি নির্দিষ্ট অঞ্চলের মধ্যেও আকারে অনেক আলাদা - এমনকি ইউরোপের' বৃহত্তর 'দেশগুলিও বিস্তরভাবে পরিবর্তিত হতে পারে, যেমন ফ্রান্স ইতালির চেয়ে দ্বিগুণের বেশি। এই বলে যে, স্পষ্টতই গেমপ্লে অঞ্চলগুলি চেষ্টা করার এবং আকারগুলি মোটামুটি একই রাখার জন্য রয়েছে - কেবল সচেতন থাকুন যে এখানে কিছুটা ভিন্নতা সম্ভবত একটি ভাল জিনিস!
সমস্যাটির বিষয়ে আমার প্রাথমিক পন্থাটি হবে আপনার অঞ্চলগুলিকে 'বিকশিত' ('বাড়ানোর' চেয়ে):
এখন, যতক্ষণ আপনি চান নিচের সিউডোকোডটি চালান:
Pick a random hex A from the boundary list;
Pick a random neighbor B of this hex from a different country;
if (A's country has more hexes than B's country has) {
change hex A to belong to B's country;
} else if (B's country has more hexes than A's country has) {
change hex B to belong to A's country;
} else {
flip a coin to decide which to change;
}
if ( the changed hex's old country has become disconnected ) {
undo and reject this move;
} else {
update the boundary list around the changed hex and its neighbors;
}
এটি যে কোনও দুটি প্রতিবেশী দেশের আকারের মধ্যে মোটামুটি ভারসাম্য বজায় রাখবে এবং 'সংযোগ বিচ্ছিন্ন' চেক (যা একটি সাধারণ বন্যা-পূরণের অ্যালগরিদম দিয়ে করা যেতে পারে) নিশ্চিত করে যে কোনও দেশ কখনও টুকরো টুকরো না হয়ে। সীমানা তালিকা আপডেট করা একটি ধ্রুবক-সময় ক্রিয়াকলাপ - পরিবর্তিত হেক্স স্পষ্টতই সর্বদা সীমানায় থাকবে এবং আপনি তার ছয়টি প্রতিবেশী যাচাই করে দেখতে পারেন যে তাদের মধ্যে কেউ সীমানা কোষে পরিণত হয়েছে কিনা (কারণ এর প্রতিবেশী এখন রয়েছে একটি ভিন্ন দেশ) বা সীমানা ঘর হওয়া বন্ধ করে দিয়েছে (কারণ তার প্রতিবেশী এখন একই দেশে রয়েছে), প্রয়োজন হিসাবে সীমানা সেটটি পরিবর্তন করে।
এই পদ্ধতির পুনঃসংশোধনের জন্য, আপনি এমন শর্তটিও তৈরি করতে পারেন যা হেক্সকে কিছুটা এলোমেলোভাবে পরিবর্তন করতে হবে - দুটি দেশকে সর্বদা 'ভারসাম্যপূর্ণ' করার পরিবর্তে আপনি সর্বদা একটি নির্দিষ্ট সম্ভাবনার সাথে অদলবদল করতে পারেন এবং ধীরে ধীরে সেই সম্ভাবনাটিও হ্রাস করতে পারেন can সময় (একটি সিমুলেটেড অ্যানিলিং অ্যালগরিদমে কুলিং প্রক্রিয়ার অনুরূপ ) তাদের মোটামুটি একই আকার হতে বাধ্য করতে শুরু করতে।
দ্রষ্টব্য যে এটি গ্যারান্টি দেয় না যে সমস্ত অঞ্চল হুবহু একই আকারের (এটি অসম্ভব যতক্ষণ না এন আপনার গ্রিডের আকারটি পুরোপুরি বিভাজিত করে) এবং এটি এমনকি গ্যারান্টি দেয় না যে সমস্ত দেশই একে অপরের এক হেক্সের মধ্যে রয়েছে; এটি গ্যারান্টি দেওয়া উচিত (পর্যাপ্ত পুনরাবৃত্তির জন্য চালানো) যে প্রতিটি দেশ তার আশেপাশের প্রতিবেশীর তুলনায় এক হেক্সের চেয়ে বড় বা ছোট নয় though