একটি 2 ডি গ্রিডে এলোমেলো শত্রু স্থান


11

আমি আমার আইটেম এবং শত্রুদের এলোমেলোভাবে (অথবা যতটা সম্ভব এলোমেলোভাবে) রাখতে চাই। এই মুহুর্তে আমি এক্সএনএর Randomক্লাসটি এক্স এর জন্য ৮০০ এবং ওয়াইয়ের জন্য 600০০ এর মধ্যে একটি সংখ্যা তৈরি করতে ব্যবহার করে It মনে হয় শত্রুরা মাঝের বা নীচের চেয়ে মানচিত্রের শীর্ষের দিকে আরও ছড়িয়ে পড়ে। আমি জেনারেটর বীজ না, সম্ভবত এটি কিছু বিবেচনা করা উচিত।

এমন কি আরও কিছু কৌশল বর্ণিত আছে যা 2 ডি গ্রিডে এলোমেলো শত্রু স্থান নির্ধারণ করতে পারে?


এই প্রশ্নটি ত্রুটিযুক্ত বলে মনে হচ্ছে। আপনি এলোমেলোভাবে কোনও ডেটা উত্স ব্যবহার না করে জিনিসগুলিকে এলোমেলোভাবে রাখতে চান? এটি একটি দ্বন্দ্ব। আপনি আসলে কী অর্জন করার চেষ্টা করছেন?
অ্যান্ড্রু রাসেল

আমি জানতে চাই যে এক্সএনএর র্যান্ডম ক্লাসের উপর নির্ভর করে কোনও ন্যূনতম এবং সর্বাধিকের মধ্যে সংখ্যা উত্পন্ন করতে অন্য কোনও কৌশল আছে কিনা। আমি আরও স্পষ্ট প্রশ্ন করার চেষ্টা করব
রব

1
আপনার সম্পর্কে র্যান্ডম ক্লাসটি কথা বলা XNA নয়, .NET ফ্রেমওয়ার্কের অংশ part শুধু এফআই।
মাইকেল কোলম্যান

@ ওমনিয়ন - আমি সচেতন প্রশ্ন তৈরি করার সময় আমি কিছুটা ক্লান্ত হয়ে পড়েছিলাম;)
রব

উত্তর:


16

এলোমেলো প্লেসমেন্ট চোখে এলোমেলো লাগে না। আপনি সম্ভবত শত্রুদের কিছুটা বেশি সমানভাবে ছড়িয়ে দিতে চাইবেন। পোইসন ডিস্কের নমুনা সম্পর্কে এই নিবন্ধটি একবার দেখুন বা নীল গোলমাল সম্পর্কে পড়ুন।


7

শান হারগ্রিভেসের উদ্ধার!

http://blogs.msdn.com/b/shawnhar/archive/2009/12/17/the-psychology-of-randomness.aspx http://blogs.msdn.com/b/shawnhar/archive/2010/09 /10/links-5-charles-bloom-on-randomness.aspx

আপনি যখন এলোমেলো ডিট্রিবিউশন মনে করেন, আপনি সত্যিকার অর্থে বন্টন বোঝায়। .নেটের র‌্যান্ডম এলোমেলো ভাবছে। এটি বের করার জন্য আপনার অন্য কিছু দরকার। আপনার প্রয়োজনের জন্য নিখুঁত দেখায় লিঙ্কড ডিস্ক নমুনা পদ্ধতি amitp লিঙ্কযুক্ত।


+1 টি শব্দ গ্রহণ অধিকার আমার মুখ থেকে, এমনকি বন্টন র্যান্ডম ডিস্ট্রিবিউশনের সাথে মিশ্রিত করা সব সময় মনে করা হয় (আমি নিজেকে একই ভুল করেছেন হয়েছে)
স্পুকস

0

নিম্নলিখিত সি # কোডটি আপনার জন্য অভিন্ন পয়েন্টের একটি সেট তৈরি করবে:

Random rand = new Random(); // creates a new random number generator with a time-based seed
int X, Y;
for(int i = 0; i < numberOfPoints; i++)
{
  X = rand.Next(800); // generates a random int between 0 and 799, inclusive
  Y = rand.Next(600); // generates a random int between 0 and 599, inclusive
  AddPointToSet(X,Y); // write this method however you want
}

নোট করুন যে আপনি যখন কোনও প্যারামিটার ছাড়াই র্যান্ডম () কনস্ট্রাক্টর ব্যবহার করেন তখন আপনার তৈরি র্যান্ডম অবজেক্টটি সময়ের উপর ভিত্তি করে বীজযুক্ত হয়, সুতরাং কলগুলির মধ্যে খুব অল্প সময়ের সাথে আপনি বারবার এটি না করা অবধি মূলত এলোমেলো হয়ে যাবে।

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