2 ডি টাইল গেমটিতে সত্তার পক্ষে সম্ভাব্য পদক্ষেপগুলি সন্ধান করা


10

আমি এটির জন্য একটি নির্দিষ্ট অনুসন্ধান শব্দটি নিয়ে আসছি but

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

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

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

কেবল ভাবছেন যে কেউ আমাকে সঠিক দিকে নির্দেশ করতে পারে (যেমন অ্যালগোরিদমের নাম, কৌশল, নিবন্ধ ইত্যাদি)।


আমি ভাবছি এটিকে অনুসন্ধানের শব্দ হিসাবে পথ অনুসন্ধান বলা হচ্ছে? আপনি যদি পাথ সন্ধান ব্যবহার করেন তবে আপনার যা প্রয়োজন তা পরিচালনা করতে আপনার পক্ষে কাউন্টার থাকতে পারে
এক্সিকলে

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

1
এটি রিয়েল-টাইম (আরটিএস) নয় যদি এটি টার্ন ভিত্তিক à লা এফএফট্যাকটিক্স হয়। : পি
অ্যালারিক

2 ডি তে, আপনি ট্যাক্সিক্যাব / ম্যানহাটনের গণনা en.wikedia.org/wiki/Taxicab_geometry
গারবেন জ্যাকবস

উত্তর:


5

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

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

ভায়োলা।

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


আমি মনে করি এই ক্ষেত্রে ডিজকস্ট্রার ওভারকিল রয়েছে। সমস্ত সম্ভাব্য চলাচলের গন্তব্যগুলিতে যাওয়ার জন্য ওপিকে কোনও পথের প্রয়োজন নেই, কোনও এজেন্ট সেখানে যেতে পারে কিনা সে সম্পর্কে কেবল একটি হ্যাঁ / কোনও উত্তর নেই। একবার ব্যবহারকারী কোনও পথ বেছে নেওয়ার পরে তিনি কোনও পাথ গণনা করতে পারেন।
মাইকেল ক্রিস্টফিক

কোনও গন্তব্য স্থির করার পরে পাথ গণনা করার জন্য ডিজকস্ট্রার অ্যালগরিদম ব্যবহারের ব্যয়টি প্রায় সরাসরি একেবারে সামনের দিকে ব্যবহারের সমান (যদি আপনি পথের জন্য এ * এর মতো কোনও তাত্ত্বিক পদ্ধতির ব্যবহার না করেন)। সামনে এটি না করা কেবল অনর্থক কাজ তৈরি করে, কারণ ডিজকস্ট্রা 'আমি কোথায় যেতে পারি' এবং 'আমি সেখানে কীভাবে যাব?' উভয় প্রশ্নের উত্তর দেবে। এটি পরিবেশে জটিলতা যুক্ত করার অনুমতি দেয় যা চলাচলের ব্যয়কে পরিবর্তন করে, যদিও এটি প্রয়োগের জন্য অপ্রয়োজনীয় হতে পারে। আরও, পদ্ধতির ভাল নথিভুক্ত করা হয়, যা প্রয়োগকারীদের জন্য সহায়ক।
টাসেজেন্ট

1
মারিওয়ের উত্তর সন্ধান করার পরে, তিনি আসলে ডিজকস্ট্রার অ্যালগরিদম বর্ণনা করেছেন, কেবলমাত্র তিনি দূরত্বটি উল্টে দিয়েছিলেন এবং এটি ডিজকস্ট্রার উল্লেখ করেন না।
ট্যাসএজেন্ট

1
এটি ডিজজস্ট্রা বলে না, কারণ আপনি সত্যিকার অর্থেই সবচেয়ে স্বল্পতম রুটের সন্ধান করছেন না বা আপনি কোনও নির্দিষ্ট পয়েন্টে পৌঁছানোর চেষ্টা করছেন না। এটি মূলত ডিজকস্ট্রার অ্যালগরিদমের প্রথম অংশ, যদিও এটি সত্য। ডিজকস্ট্রা ব্যবহার করে আপনার কথা বলার সমস্যাটি বিভ্রান্তিকর হতে পারে এবং আমি মনে করি এটি মাইকেলকেও বিভ্রান্ত করেছে। তিনি সম্ভবত ভেবেছিলেন যে আপনি প্রতিটি ক্ষেত্র / ঘরের জন্য একবার ডিজকস্ট্র ব্যবহার করার পরামর্শ দিয়েছেন।
মারিও

1
এই পদ্ধতির ব্যবহারটি শেষ হয়েছে কারণ এটি ভাল কাজ করেছে এবং প্রতিবন্ধকতাগুলি পরিচালনা করতে খুব সহজ।
এনআরএফ

12

আমি এখনই ভাবতে পারি সবচেয়ে সহজ (এবং সম্ভবত সবচেয়ে নিষ্পাপ) পদ্ধতির:

  • আপনার চরিত্রটি শুরু করুন এবং আশেপাশের সমস্ত ক্ষেত্রগুলি চিহ্নিত করুন steps - 1
  • সমস্ত নতুন চিহ্নিত চিহ্নিত ক্ষেত্রগুলিতে ইটারেট করুন এবং আবার তাদের আশেপাশের ক্ষেত্রগুলিকে চিহ্নিত করুন steps - 1 যেখানে stepsবর্তমান ক্ষেত্রের ধাপ সংখ্যাটি হবে, যদি না নতুন ক্ষেত্রটির ইতিমধ্যে উচ্চতর নম্বর না থাকে।
  • আপনার পদক্ষেপ শেষ না হওয়া পর্যন্ত শেষ পদক্ষেপটি পুনরাবৃত্তি করুন।

1
এই অ্যালগরিদমের একটি নাম রয়েছে: বন্যা ভরাট
মাইকেল ক্রিস্টোফিক

6
@ মিশেল ক্রিস্টোফিক: আমি এটি কল করব প্রথম সন্ধানের প্রশস্ততা । বন্যার ভরাট দূরত্বগুলি রাখে না।
ব্লুরাজা - ড্যানি পিফ্লুঘুফুট

2

আমি মনে করি আপনি যা খুঁজছেন তা ম্যানহাটন দূরত্ব হতে পারে । কোনও বাধা ধরে নিলে, আপনি বলতে পারেন যে একটি বর্গক্ষেত্র কেবল পৌঁছনীয় যদি:

| Tox-fromX | + | toY-fromY | | <সর্বোচ্চআপনি দূরত্ব

আপনার যদি পরে বাধা হয়ে দাঁড়ায় তবে এই অ্যালগরিদমটি সঠিক দিক নির্দেশনা নাও থাকতে পারে; এটিকে অভিযোজিত করার একটি সম্ভাব্য উপায়ের মধ্যে 'ছায়া' কাস্ট করা বাধা থাকা এবং নিকটতম বিন্দু থেকে পুনরায় মূল্যায়ন জড়িত থাকতে পারে।

সম্পাদনা করুন (কারণ আমার এখন আরও কিছুটা অতিরিক্ত সময় আছে):

'শ্যাডো' দ্বারা আমি এর অর্থ কিছু বোঝাতে চাইছি যদি 0 টি পৌঁছনোযোগ্য বর্গক্ষেত্র হয়, সি অক্ষর হয় এবং এক্স বাধা হয়:

 012345678
0    0
1   00
2  000X
3 000C000
4  00000
5   000
6    0
 012345678

(5, 2) যেহেতু একটি প্রতিবন্ধক তাই আপনি x> = 5 এবং y <= 2 দিয়ে কিছুই পেতে পারবেন না তা ধরে নিয়েই শুরু করুন। এরপরে আপনি অন্য স্কোয়ার থেকে পুনরায় গণনা করতে পারবেন; আপনি যদি (5, 1) যেতে চান তবে আপনি ম্যানহাটনের দূরত্ব (4, 1) গণনা করতে পারেন এবং দেখতে পারেন যে + চরিত্র থেকে দূরত্ব (4, 1) প্লেয়ারের চলাচলের দূরত্বের চেয়ে কম কিনা।

এটি মোটামুটি তুচ্ছ উদাহরণ, তবে আপনার যদি একাধিক বাধা এবং / অথবা কিছুটা দীর্ঘ চলাচলের পরিসর থাকে, তবে এটি জটিলতাটি পরিচালনা করতে সক্ষম হওয়া উচিত।

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


ছায়া ফেলে দেওয়ার অর্থ কী?
এনআরএফ

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