> For the complete documentation index, see [llms.txt](https://phitron.gitbook.io/algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://phitron.gitbook.io/algorithm/module_3/_-2d.md).

# মডিউল ৩\_৩ঃ 2D গ্রীড

2D গ্রীড হচ্ছে একটি 2D matrix। যেইখানে প্রতিটি ইনডেক্সে কিছু ক্যারেক্টার থাকে। এক্ষেত্রে আপনাকে একটি source দেয়া থাকবে এবং সেই source থেকে BFS অথবা DFS চালাতে হয়।&#x20;

&#x20;নিচে 3x3 এর একটি 2D গ্রীড দেখানো হলঃ&#x20;

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2F5lBYZ9XJua4cToD9cx2E%2Fimage.png?alt=media&amp;token=e5d7b072-b4d7-4a41-8d7a-e008de8f6c58" alt="" width="563"><figcaption></figcaption></figure>

2D গ্রীডে কিভাবে movement করতে পারবেন সেইটি আপনাকে প্রশ্নে বলে দেয়া থাকবে। উপরে , নিচে, বামে, ডানে এইগুলোতে movement করা যাবে বলা হতে পারে , আর কিছু প্রশ্নে উপরে, নিচে, বামে, ডানে এবং অ্যাডজাসেন্সয়েও movement করা যাবে বলা হতে পারে। &#x20;

এখন উপরে , নিচে, বামে, ডানে movement বলতে বুঝায় কোন একটা সেল থেকে উপরে , নিচে, বামে, ডানে যেতে পারব।&#x20;

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FFpkb7DqFmYjyfXcZssn9%2Fimage.png?alt=media&amp;token=7abcc796-f03d-42b4-9b11-d23e59fede07" alt="" width="563"><figcaption></figcaption></figure>

উপরের চিত্রে ধরা হল আপনি সবুজ কালার করা সেল এ আছেন যেইটির, i = 1 এবং  j = 1  (এইখানে i দ্বারা row নং এবং j দ্বারা column নং বুঝানো হয়েছে) ।&#x20;

* এখন আপনাকে বলা হল উপরের দিকে movement করুনঃ <br>

  <figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FNcyoMAffSQeez90nG6it%2Fimage.png?alt=media&amp;token=235485d4-3047-4dde-baa7-c50112e72aa7" alt="" width="563"><figcaption></figcaption></figure>

  উপরে movement করার পর আপনার i = 0 হয়ে গেল এবং  j = 1 একই রয়ে গেল। তাহলে এইটি থেকে আমরা বুঝতে পারলাম 2D গ্রীডে যদি আমাদের বর্তমান সেল থেকে উপরের সেলে যেতে হলে i - 1 করতে হবে।&#x20;
* &#x20; এখন বলা হল সেল i = 1 এবং  j = 1 থেকে আপনি  নিচের দিকে movement করুনঃ&#x20;

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2Fd67gXfYkZcStxW1P03X9%2Fimage.png?alt=media&amp;token=6c0dd20d-13d5-407a-9ff9-151745e7ad1d" alt="" width="563"><figcaption></figcaption></figure>

উপরে movement করার পর আপনার i = 2 হয়ে গেল এবং  j = 1 একই রয়ে গেল। তাহলে এইটি থেকে আমরা বুঝতে পারলাম 2D গ্রীডে যদি আমাদের বর্তমান সেল থেকে নিচের সেলে যেতে হলে i + 1 করতে হবে।&#x20;

* এখন বলা হল সেল i = 1 এবং  j = 1 থেকে আপনি বামের দিকে movement করুনঃ <br>

  <figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2F86l2u2JS3IoGAh0eUvCO%2Fimage.png?alt=media&amp;token=ca4d4a67-7d3a-4c87-a96b-464f2c34d886" alt="" width="563"><figcaption></figcaption></figure>

  উপরে movement করার পর আপনার i = 1  একই  রয়ে ফেল কিন্তু j = 0 গেল।  তাহলে এইটি থেকে আমরা বুঝতে পারলাম 2D গ্রীডে যদি আমাদের বর্তমান সেল থেকে বামের সেলে যেতে হলে j - 1 করতে হবে।&#x20;
* এখন বলা হল সেল i = 1 এবং  j = 1 থেকে আপনি ডানের দিকে movement করুনঃ <br>

  <figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2F7AZyc8hE40YDbbToUUho%2Fimage.png?alt=media&amp;token=c174b5f0-3caf-464a-863a-c455191fa9d9" alt="" width="563"><figcaption></figcaption></figure>

  উপরে movement করার পর আপনার i = 1  একই  রয়ে ফেল কিন্তু j = 2 গেল।  তাহলে এইটি থেকে আমরা বুঝতে পারলাম 2D গ্রীডে যদি আমাদের বর্তমান সেল থেকে ডানের সেলে যেতে হলে j + 1 করতে হবে।&#x20;

এইভাবে 2D গ্রীডে  উপরে , নিচে, বামে, ডানে movement করতে হয়।&#x20;

***

* ঠিক একই ভাবে বলা হল সেল i = 1 এবং  j = 1 থেকে আপনি উপরের বামের অ্যাডজাসেন্সয়ের দিকে movement করুনঃ<br>

  <figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FBKEqGbN7fbNTsHomI03Q%2Fimage.png?alt=media&amp;token=4a9e1113-afd2-453e-8f83-53c5fa1105d6" alt="" width="563"><figcaption></figcaption></figure>

  উপরে movement করার পর আপনার i = 0 এবং j = 0 গেল। তাহলে এইটি থেকে আমরা বুঝতে পারলাম 2D গ্রীডে যদি আমাদের বর্তমান সেল থেকে  উপরের বামের  উপরের বামের অ্যাডজাসেন্সয়ের সেলে যেতে হলে i -1 এবং  j - 1 করতে হবে।

বাকি  অ্যাডজাসেন্সয়ের movement গুলো কিভাবে হয় সেইগুলো নিজে নিজে একটু চিন্তা করে দেখো।&#x20;
