গোলকধাঁধা সমস্যায় ইঁদুর হল ব্যাকট্র্যাকিংয়ের একটি সুপরিচিত সমস্যা। এখানে আমরা সেই সমস্যাটিকে সামান্য ভিন্নতার সাথে দেখব। ধরুন একটি NxN গোলকধাঁধা M দেওয়া হল। শুরুর বিন্দু হল উপরের বাম কোণ M[0, 0], এবং গন্তব্য হল ডান নীচের কোণ M[N – 1, N - 1]। একটি ইঁদুর শুরু বিন্দুতে স্থাপন করা হয়। আমাদের লক্ষ্য হল প্রারম্ভিক বিন্দু থেকে শেষ বিন্দু পর্যন্ত একটি পথ খুঁজে বের করা যা গন্তব্যে পৌঁছানোর জন্য ইঁদুর দ্বারা হতে পারে। এখানে ইঁদুর লাফ দিতে পারে (প্রকরণ)। এখন কিছু সীমাবদ্ধতা আছে
- ইঁদুর ডানদিকে বা নিচের দিকে যেতে পারে।
- কোষে 0 সহ গোলকধাঁধা ইঙ্গিত করে যে সেলটি ব্লক করা হয়েছে।
- অ-শূন্য কোষগুলি বৈধ পথ নির্দেশ করছে৷ ৷
- কোষের ভিতরের সংখ্যাটি নির্দেশ করে যে ইঁদুরটি সেই সেল থেকে সর্বোচ্চ কত লাফ দিতে পারে।
অ্যালগরিদম
ratInMaze
গন্তব্যে পৌঁছে গেলে শুরু করুন, তারপর সমাধান ম্যাট্রিক্সটি প্রিন্ট করুন অন্য 1. সমাধান ম্যাট্রিক্সের ভিতরে বর্তমান ঘরটিকে 1 2 হিসাবে রাখুন। এগিয়ে যান বা লাফ দিন (সর্বোচ্চ জাম্প মান পরীক্ষা করুন) এবং বারবার চেক করুন যে সরানো সমাধানের দিকে নিয়ে যায় কি না। 3. ধাপ 2 থেকে নেওয়া পদক্ষেপটি যদি সঠিক না হয়, তাহলে নীচে সরান, এবং পরীক্ষা করে দেখুন এটি সমাধানের দিকে নিয়ে যাচ্ছে বা 4 নয়৷ যদি ধাপ 2 এবং 3-এর কোনও সমাধানই সঠিক না হয় তবে বর্তমান ঘরটি 0 করুন৷ শেষ করুন ifendউদাহরণ
#include#define N 4 useing namespace std;void dispSolution(int sol[N][N]) { for (int i =0; i =0 &&x =0 &&y আউটপুট
1 0 0 01 0 0 10 0 0 10 0 0 1