টার্ন-ভিত্তিক, দূরত্ব-ভিত্তিক কৌশল গেমের সম্ভাব্য চলাফেরার পরিসর কীভাবে নির্ধারণ করবেন?


11

আমি সি ++ এবং এসএফএমএল -২.০ ব্যবহার করে একটি দ্বিমাত্রিক, টার্ন-ভিত্তিক কৌশল গেম তৈরি করছি। নড়াচড়া গ্রিড ভিত্তিক না হয়ে দূরত্ব ভিত্তিক, বিভিন্ন ত্রিভুজ আকারের টুকরো রয়েছে যা প্রদত্ত মোড়ের উপরের প্রতিটি স্থানে ঘোরাতে পারে বা এগিয়ে যেতে পারে।

চলাচল এমনভাবে কাজ করবে যাতে প্লেয়ারটি টুকরো টুকরো করার জন্য একটি স্থান নির্বাচন করে, যা টুকরোটি গ্রহণের জন্য একটি সম্ভাব্য পথ তৈরি করে। প্লেয়ার একবার তার সিদ্ধান্তটি নিশ্চিত করে নিলে টুকরোটি সেই পথ ধরে কাঙ্ক্ষিত স্থানে চলে যাবে। পাথ দুটি কারণের দ্বারা সীমাবদ্ধ: দূরত্ব, কোনও টুকরো কতদূর যেতে সক্ষম, অ্যাকাউন্টগুলি কোনও পালা গ্রহণ করে (সুতরাং যদি কোনও বক্ররেখা থাকে তবে এটি বক্ররেখার দৈর্ঘ্য হবে, এবং সরাসরি বিন্দুতে নয়); এবং স্টিয়ারিং এঙ্গেলটি চলার সময় টুকরোটি যে কোনও (এবং প্রতিটি পর্যন্ত) পয়েন্টে কতদূর ঘুরতে পারে (উদাহরণস্বরূপ, -30 থেকে 30 ডিগ্রি পর্যন্ত)।

আমার প্রশ্নটি হল, প্লেয়ারটি টুকরো স্থানান্তরিত করতে প্লেয়ারটি যে নির্বাচন করতে পারে তার সম্ভাব্য অবস্থানগুলির পরিসীমা নির্ধারণ করার বিষয়ে আমি কীভাবে যেতে পারি?

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

ঘুরার ব্যাসার্ধকে বিবেচনা করে কোনও ইউনিট যে স্থান পরিবর্তন করতে পারে তা আমি কীভাবে নির্ধারণ করতে পারি?

উদাহরণস্বরূপ, নীচের চিত্রে। লাল, নীল এবং সবুজ রেখাগুলির দৈর্ঘ্য একই হবে be বেগুনি বৃত্তটি ইউনিটটি স্থানান্তর করতে পারে এমন চলাচলের পরিসরকে বোঝায়। (আকৃতি সম্ভবত বেঠিক এবং লাইন সম্ভবত হয় না আসলে একই দৈর্ঘ্য, কিন্তু আপনি ধারণা পেতে)

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


এটি এখনও কেবল একই (মোট) দূরত্ব সরাতে সক্ষম হতে চলেছে। সুতরাং প্রশ্নটি "এটি কতদূর ঘুরে?" / "এটি কতটা ঘুরতে হবে?" / " এটি কোথায় ঘুরতে হবে?" আবিষ্কার করার বিষয়ে সত্যিই প্রশ্ন। আপনার সম্ভবত নিয়মিত পাথ নির্ধারণ থেকে শুরু করতে হবে, তারপরে একটি নির্দিষ্ট পরিমাণের উপরে কোণগুলির জন্য একটি স্টার্ট-অফ-টার্নটি পদক্ষেপ করুন; নোট করুন যে চূড়ান্ত দূরত্বটি বক্ররেখার চেয়ে সরলরেখার পথে (সর্বশেষতম বাঁক) দীর্ঘতর হবে।
ক্লকওয়ার্ক-যাদুঘর

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

আপনি কী বলতে চান, একটি ইউনিট যে পরিসরটি স্থানান্তর করতে পারে? আপনি যে পয়েন্টগুলিতে যেতে চান তা বোঝাতে চান? লিনিয়ার বীজগণিত (ভেক্টর) সম্পর্কে আপনি কতটা পরিচিত?
ব্লুরাজা - ড্যানি প্লেফুঘুফুট

1
আপনি কোন বাস্তব জীবনের দৃশ্যের মডেল তৈরির চেষ্টা করছেন? আপনার সমস্যা প্রয়োজনীয়তার ক্ষেত্রে খুব অস্পষ্ট, ফলস্বরূপ অনেকগুলি সমাধানের পদ্ধতির প্রস্তাব দেওয়া হচ্ছে। এই অঞ্চলে প্রতিটি নির্দিষ্ট সমস্যার (ভার্চুয়াল) কাছে একটি সুপরিচিত পন্থা রয়েছে তবে সকলেই অনুমান করছেন যে আপনি আসলে এই সমস্যাগুলির মধ্যে কোনটি মোকাবেলা করছেন।
পিটার জেরকেন্স

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

উত্তর:


4

ডিজস্ক্রা ব্যবহার করে একটি প্রবাহ বা দূরত্বের ক্ষেত্র তৈরি করুন।

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

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


আমি কীভাবে ধারণাটি ব্যাখ্যা করব, বা কীভাবে এটি বাস্তবায়ন করব তা নয়, তবে অবশ্যই সঠিক উপায়।
পিটার জেরকেন্স

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

@ টাসেজেন্ট: ভাল কথা, আমি এটি পুরোপুরিভাবে ভাবিনি। তখন অ্যালগরিদমটি সম্ভবত কিছুটা বন্ধ থাকলেও পদ্ধতির কাজ করা উচিত।
শান মিডলডিচ

@ পিটারজির্কেন্স: আমি একমত যে এটি একটি খারাপ ব্যাখ্যা। আপনার নিজের উত্তরটি তৈরি করা উচিত যা এটি আরও ভালভাবে ব্যাখ্যা করে।
শান মিডলডিচ

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

4

একটি নিষ্ঠুর শক্তি সমাধান হবে:

  1. কেন্দ্রের এককটি সহ ইউনিটটির চারপাশে শীর্ষদিকের বৃত্ত তৈরি করুন। বৃত্তের ব্যাসার্ধ সর্বোচ্চ গতির দূরত্ব movement চূড়ান্ত ঘনত্ব আপনি চূড়ান্ত ফলাফলটি কতটা বিস্তারিত চান তা নির্ভর করে পরিবর্তিত হতে পারে।
  2. প্রতিটি ভার্টেক্স পজিশনের জন্য, ইউনিটের স্টিয়ারিংকে সেই অবস্থানের দিকে চালনা করুন। এটি রেন্ডারিং ছাড়াই শক্ত লুপে করা হয়।
  3. স্টিয়ারিং সিমুলেশনে সর্বাধিক দূরত্ব পৌঁছে গেলে অনুভূমিক ইউনিটের বিন্দুতে শীর্ষটি স্থানান্তরিত করুন। এই পয়েন্টটি বর্তমান টার্নটি শেষ হওয়ার আগে ইউনিটটি যে শীর্ষটি পেতে পারে এটি সবচেয়ে নিকটে। এটি প্রকৃত চলাচলের আকারে বৃত্তটি সঙ্কুচিত করার প্রভাব ফেলে।
  4. সম্ভাব্য চলাচলের দূরত্বগুলি আঁকতে একটি রেন্ডার সার্কেল তৈরি করতে ইউনিটকে কেন্দ্র করে একটি শীর্ষবিন্দু সহ সেই শীর্ষগুলি ব্যবহার করুন।

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

সুতরাং, নীল চেনাশোনা দিয়ে শুরু করে আপনি বেগুনি বৃত্তটি শেষ করে আপনার পাথগুলি প্রক্রিয়া করবেন। তারপরে আপনি আকৃতিটি প্রদর্শনের জন্য প্রয়োজনীয় ত্রিভুজগুলি তৈরি করতে ইউনিটের একটি সেন্টার পয়েন্ট সহ সেই পয়েন্টগুলি ব্যবহার করতে পারেন। (কেবলমাত্র সেই চিত্রটি তৈরি করেই আমি বুঝতে পারি যে সেই আকৃতিটি সঠিক নয়, তবে আসলে কী সঠিক তা দেখতে আকর্ষণীয় হবে)


3

আমি শিনের সমাধানটি একটি পৃথক উত্তরে প্রসারিত করতে যাচ্ছি, কারণ এটি আমার প্রথম প্রস্তাব করা থেকে আলাদা পদ্ধতির প্রতিনিধিত্ব করে।

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

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

আপাতত দ্বি-মাত্রা ধরে নিলে, আপনি 3 এর জন্য এক্সট্রোপোলেট করতে পারেন:

সাধারণত, প্রতিটি অনুমোদিত, পৃথক স্থানাঙ্কের পজিশনের জন্য আপনার একটি নোডের প্রয়োজন হবে। উদাহরণ স্বরূপ:

(0,0) - (1,0) - (2,0)
  | \  /  |  \  / |
(0,1) - (1,1) - (2,1)

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

ঘূর্ণনের সাথে ব্যবহারযোগ্য হওয়ার জন্য এই পদ্ধতিটি প্রসারিত করতে, 3 টি মাত্রায় এই একই নোডগ্রাফটি কল্পনা করুন। জেড-দিকটি ঘূর্ণন / সম্মুখিনের সাথে সামঞ্জস্য করে এবং চক্রাকার হয়, এর অর্থ যদি আপনি + জেড দিক দিয়ে ভ্রমণ শুরু করেন যেখানে আপনি শুরু করেছিলেন সেখানে ফিরে যান। এখন, সংলগ্ন পজিশনের সাথে সম্পর্কিত নোডগুলি কেবল সেই দিকের সাথে সামঞ্জস্যপূর্ণ সম্মুখ জুড়ে সংযুক্ত। আপনি যথারীতি ইতিমধ্যে অন্বেষিত নোডগুলির সাথে সংযুক্ত নোডগুলি দিয়ে পুনরাবৃত্তি করুন। আমি এই প্রকল্পে এন, এনই, ই, এসই, এস, এসডাব্লু, ডাব্লু, এনডাব্লু সীমাবদ্ধ করার সুপারিশ করব।

এই সমাধানটি আপনাকে স্থানের সমস্ত অ্যাক্সেসযোগ্য অঞ্চল, পাশাপাশি সেখানে পৌঁছানোর সর্বোত্তম পথ, সেখানে পৌঁছানোর সময় আপনার কতটা ঘূর্ণন থাকতে পারে এবং সেখানে পৌঁছানোর সময় আপনার যে সমস্ত অভিমুখ থাকতে পারে তা বলতে পারে।

তারপরে, প্রকৃতপক্ষে পথটি সম্পাদন করার সময়, আপনি এটিকে আরও খাঁটি দেখানোর জন্য আপনার উপায়টিকে বিভক্ত / ঘনকূপে মুক্ত করতে পারেন free


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

1

দেখে মনে হচ্ছে আপনার প্রথমে সিদ্ধান্ত নেওয়া দরকার যে আপনি কীভাবে কাজ শুরু করতে চান। বিকল্পগুলি যেমন:

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

  • মোট 45 ডিগ্রি অবধি চলার সময় অবিচ্ছিন্ন বাঁক। এটি একটি খুব চালাক এবং আশা করি আপনি পরে যাচ্ছেন। সংখ্যা নির্ধারিত টাইমস্টেপ ব্যবহার করে পাথের উপর সংহত করা সম্ভবত এটির কাছে যাওয়ার সহজতম উপায়। আপনার শঙ্কু সর্বাধিক (+ ধাপে প্রতিটি পদে X ডিগ্রি) এবং ন্যূনতম (প্রতিটি পদক্ষেপে -X ডিগ্রি) বাঁকিয়ে দেওয়া হবে।

এই প্রয়োজনীয়তার দ্বিতীয়টির সাথে কীভাবে মহাকাশ দিয়ে পাড়ি দেওয়া যায় তা মূলত নির্ভর করে যে তারা যে পরিবেশে চলেছে তার উপর। যাইহোক, যদি না থাকে, তবে আপনি ঘূর্ণনটি পছন্দসই স্থানে শেষ করতে (এবং এমনকি টেপার-অফ )ও করতে পারেন।

আমার একটা অনুভূতি আছে যে আপনার সম্পর্কে যে প্রশ্ন ছিল সেগুলি আমি কেবল আংশিকভাবে কভার করেছি, সুতরাং মন্তব্যে আরও বেশি যোগ করতে দ্বিধা বোধ করি এবং আমি আলোচনাটি প্রসারিত করতে পারি।


আমি অবশ্যই দ্বিতীয় বিকল্পটি ব্যবহার করতে চাই, যেকোনও দিকে 45 ডিগ্রি এবং সম্ভাব্যভাবে প্রতিটি পথের দিকে বিন্দুতে। এছাড়াও প্রতিবন্ধকতা থাকবে, প্রতিটি টুকরোর চেয়ে বড় (চিন্তা করুন দৈত্য শিলা)। আমি যেভাবে প্রাথমিকভাবে এটি সম্পর্কে ভাবছিলাম তা হ'ল সম্ভাব্য শেষের পয়েন্টগুলির একটি শঙ্কু তৈরি করা, এবং তারপরে সেই শেষ পয়েন্টগুলির প্রত্যেকটির জন্য একটি নতুন শঙ্কু উত্পন্ন করা হবে, এবং যতক্ষণ না এটি ভ্রমণ করা সর্বাধিক দূরত্বে না পৌঁছায় ততক্ষণ প্রতিটি সম্ভাব্য অবস্থানের জন্য। এটি বলেছিল, আমি ক্রেজি ওভারকম্প্লিকেশন ছাড়াই কীভাবে এটি বাস্তবায়ন করতে যায় তা পুরোপুরি নিশ্চিত নই।
sfphilli

হুমম, মনে হচ্ছে আমি বিশদ সম্পর্কে কিছুটা সম্পর্কে / অস্পষ্ট ছিলাম। যে প্রশ্নটি ফিরে পেয়েছি আমি তা দেখতে পেয়েছি যে আপনি 'টার্ন-ভিত্তিক' নির্দিষ্ট করেছেন এবং ইউনিটগুলি তাদের ঘুরে 'ঘোরানো বা সরাতে' পারে। তাহলে কি তার অর্থ এই যে প্লেয়ারটি তাদের ক্রিয়াকলাপগুলি অনেক আগেই চালিয়ে যায় এবং আপনি যখন সরানো হয় তখন আপনি পথচলাটি করতে চান? আন্দোলন কীভাবে কাজ করবে বলে মনে করা হচ্ছে সে সম্পর্কে আরও কিছু ব্যাখ্যা সহায়ক হবে।
ট্যাসএজেন্ট

না, আমি যা বোঝাতে চেয়েছি তা হল যে নির্দিষ্ট প্রদত্ত প্লেয়ারটি প্লেয়ারটি তাদের টুকরোটি জায়গায় পছন্দ মতো ঘোরাফেরা করতে পারে বা তারা যে দিকটি ইতিমধ্যে দেখছে সেদিকে যেতে পারে। যদি তারা স্থানান্তরিত হয় তবে তারা কোনও পথ ধরে একটি নির্দিষ্ট দূরত্ব যেতে পারে এবং চলার সময় তারা কোনও নির্দিষ্ট কোণে ঘুরতে বা উপরে উঠতে পারে (উদাহরণস্বরূপ -45 থেকে 45 ডিগ্রি পর্যন্ত যে কোনও জায়গায়)। সুতরাং কল্পনা করুন যে কোনও নির্বাচিত পথটি বাম বা ডানে সরে যাওয়ার জন্য একটি বক্ররেখা জড়িত। প্লেয়ারটি যে বিন্দুতে যেতে চান তারা বাছাই করে এই পথটি নির্ধারণ করা হবে, সম্ভাব্য পয়েন্টগুলির সীমার মধ্যে যা নির্ধারণ করতে আমার সমস্যা হচ্ছে।
sfphilli

ঠিক আছে, সুতরাং এটি প্রকৃতপক্ষে শোনা যাচ্ছে, দুর্ভাগ্যক্রমে, আপনার পছন্দসই বৈশিষ্ট্যগুলি সম্ভবত ডিজিকস্ট্রার অ্যালগরিদমের জন্য খুব উপরে সীমাবদ্ধ যা আমরা উপরে আলোচনা করছি: - \ \ সম্ভবত। আমি বাড়ি ফিরে আসার পরে এর জন্য কিছু জিনিস স্কেচ করব।
ট্যাসেজেন্ট

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