i have written this code ..if i use for loop it writes all zeros to 2 and if i use while then it dont display result i am lost ...
Code:
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

       
       //----------------------------------------------------Print maze
    void fnPrintMaze(int m,int n,int**a)
       {
         for (int i=0; i<m; i++)
          {
          for (int j=0; j<n; j++)
              {
               cout<<a[i][j];
               cout<<" ";
               }
          cout<<endl;  
          }    
       }
       
      //----------------------------------------------------Find Path

     void fnFindPath(int m,int n, int **a)
     {
         int i=0;
         int j=0;
       
          
         //if(i==0 && j==0)
          a[0][0]=2;
          
       do{   
          
          if((i>=0 && j+1>=0 && i<=m-1 && j+1<=n-1 )&& a[i][j+1]==0)//right
          {j++;
                  a[i][j]=2;
          }
          
         else if((i+1>=0 && j>=0 && i+1<=m-1 && j<=n-1) && a[i+1][j]==0)//down
          {i++;
          a[i][j]=2;
          
          }
          
          
           else if((i>=0 && j-1>=0 && i<=m-1 && j-1<=n-1) && a[i][j-1]==0)    //left  
          {
          j--;
          a[i][i]=2;
          }
          
          
          
          else if((i-1>=0 && j>=0 && i-1<=m-1 && j<n-1) && a[i-1][j]==0) //up
          {
          i--;
          a[i][j]=2;
          } 
       else 
        {
        if(i>=0 && j+1>0 && i<=m-1 &&j+1<=n-1 && a[i][j+1]==2)
          {
                  a[i][j]=3;
                  j++;
          }
          
          else if(i+1>0 && j>=0 && i+1<=m-1 &&j<=n-1 && a[i+1][j]==2)
          {
          a[i][j]=3;
          i++;
          }
         
          
           else if(i>=0 && j-1>=0 && i<=m-1 &&j-1<=n-1 && a[i][j-1]==2)     
          {

          a[i][i]=3;
          j--;
          }
          
          
          
          else if(i-1>=0 && j>=0 && i-1<=m-1 &&j<n-1 && a[i-1][j]==2)
          {
          
          a[i][j]=3;
          i--;
          
          }
        
        
        
        
        }
        }while( !( i==m-1 && j==n-1));
          
     
     }
      



int main(int argc, char *argv[])
{
    int m, n;
    int **maze;
    
    fstream fin("maze.txt", ios::in);
    fin>>m;
    fin>>n;
        
    maze= new int*[m];                                    //defining rows
          
    for (int i=0; i<=m-1; i++)
          maze[i]=new int[n];                            //defining columns
    
    
    for (int i=0; i<=m-1; i++)                              //reading values from txt and putting in matrix
          for (int j=0; j<=n-1; j++)
              fin>>maze[i][j];
              
       

     fnPrintMaze(m,n,maze);
       
    //for (int i=0; i<=m-1; i++)
        // for (int j=0; j<=n-1; j++)
      
               fnFindPath( m,n, maze);      


    fnPrintMaze(m,n,maze);
    
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

Last edited by shabbir; 29Jun2008 at 11:28.. Reason: Code block