চ্যালেঞ্জ
গ্রিডের আকার, বাধাগুলির অবস্থান, প্লেয়ারের অবস্থান এবং লক্ষ্যের অবস্থান দেওয়া আপনার কাজটি প্লেয়ারের লক্ষ্য অর্জনের জন্য একটি পথ খুঁজে পাওয়া এবং একই সাথে (যদি প্রয়োজন হয়) বাধাগুলি এড়ানোর জন্য হয়।
ইনপুট
- এন : গ্রিডের আকার
N x N
- পি : প্লেয়ারের অবস্থান
[playerposx, playerposy]
- টি : টার্গেটের অবস্থান
[targetposx, targetposy]
- ও : বাধা 'অবস্থান
[[x1, y1], [x2, y2],...,[xn, yn]]
আউটপুট
পাথ : একটি পাথ প্লেয়ার লক্ষ্য অর্জনে ব্যবহার করতে পারে[[x1, y1], [x2, y2],...,[xn, yn]]
বিধি
- পয়েন্টটি
[0,0]
গ্রিডের উপরের-বাম কোণে। - প্লেয়ারের অবস্থান সর্বদা গ্রিডের বাম দিকে থাকবে।
- টার্গেটের অবস্থান সর্বদা গ্রিডের ডানদিকে থাকবে।
- গ্রিডে সর্বদা কমপক্ষে একটি বাধা থাকবে।
- আপনি ধরে নিতে পারেন যে কোনও বাধা প্লেয়ার বা লক্ষ্য অবস্থানকে ওভারল্যাপ করে না।
- অগত্যা আপনার ন্যূনতম পথটি সন্ধান করার দরকার নেই।
- খেলোয়াড়টি কেবল বাম, ডান, উপরে এবং নীচে ত্রিভুজ নয় move
- আপনি যে কোনও সুবিধাজনক উপায়ে ইনপুট নিতে পারেন।
- আপনি ধরে নিতে পারেন যে খেলোয়াড়ের লক্ষ্যবস্তুতে পৌঁছানোর পথে সর্বদা অস্তিত্ব থাকবে।
- স্পষ্টতই, প্রতিটি ইনপুট জন্য একাধিক বৈধ পাথ বিদ্যমান, একটি চয়ন করুন।
- ধরে নিন
N > 2
গ্রিডটি কমপক্ষে হবে3 x 3
।
উদাহরণ
ইনপুট: 9
, [6, 0]
, [3, 8]
, [[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]]
সম্ভাব্য আউটপুট:[[6, 0], [6, 1], [6, 2], [6, 3], [5, 3], [5, 4], [5, 5], [5, 6], [5, 7], [5, 8], [4, 8], [3, 8]]
ইনপুট: 6
, [1, 0]
, [3, 5]
, [[1, 2], [2, 5], [5, 1]]
সম্ভাব্য আউটপুট:[[1, 0], [1, 1], [2, 1], [2, 2], [2, 3], [2, 4], [3, 4], [3, 5]]
বিঃদ্রঃ
লক্ষ্য করুন যে X
সারি এবং Y
কর্স জন্য। কোনও চিত্রের স্থানাঙ্কের সাথে তাদের বিভ্রান্ত করবেন না।
সম্পাদন করা
হিসাবে @digEmAll নিয়ম কারণে নির্দিষ্ট #2
এবং #3
, playerY = 0
এবং targetY = N-1
। সুতরাং, আপনি যদি চান তবে আপনি কেবল ইনপুট হিসাবে নিতে পারেন playerX
এবং এবং targetX
(যদি এটি আপনার কোডকে আরও ছোট করে তোলে)।