Backtracking Problem



  • egal hat sich erledigt wurde anderst programmiert ! viel findet ja noch jemand den fehler??

    habe ein Riesenproblem wenn ich zb so vom ersten Stern Anfange und rek hinuntersteige 
    
     -> *** 
           * --> komm ich nur zu diesem Stern
          *  --> und nicht bis zu diesem den nimmts mir einfach nicht?
    
        ***
           *
           *  --> wenn ein weiterer Stern hier ist komm ich aber runter ?? wieso??
          *
    Matrix ist mit einser initialisiert worden und aus Sternen an denen ich entlang gehe!
    
    int CheckMatr( Matrix &matrix, int i, int j, int tempi , int tempj, int &count) {  
        if (matr.matr[i][j] == '*'){
            matr.matr[i][j] = '2';
            matr.matr[tempi][tempj]= '3';      
            if ( matr.matr[i][j+1] != '1' && tempj != j+1 && CheckMatr(matrix, i, j+1, i , j, count)) {          
                return 1;
            } else if (matr.matr[i-1][j+1] != '1' && tempi != i-1 && tempj != j+1 && CheckMatr(matrix, i-1, j+1, i , j, count)) {
                return 1;
            } else if (matr.matr[i-1][j-1] != '1' && tempi != i-1 && tempj != j-1 && CheckMatr(matrix, i-1, j-1, i , j, count)) {
                return 1;
            }  else if ( matr.matr[i+1][j] != '1' && tempi != i+1 && CheckMatr(matrix, i+1, j, i , j, count)) {            
                return 1;
            } else if (matr.matr[i-1][j] != '1' && tempi != i-1 && CheckMatr(matrix, i-1, j, i , j, count)) {        
                return 1;
            }else if  ( matr.matr[i][j-1] != '1' && tempj != j-1 && CheckMatr(matrix, i, j-1, i , j, count)) {                         
                return 1;
            }else if (matr.matr[i+1][j-1] != '1' && tempi != i+1 && tempj != j-1 && CheckMatr(matrix, i+1, j-1, i , j, count)) {
                return 1;
            }else if (matr.matr[i+1][j+1] != '1' && tempi != i+1 && tempj != j+1 && CheckMatr(matrix, i+1, j+1, i , j, count)) {
                return 1;
            }    
             matr.matr[i][j] = '3';
            ++count;
        }return 0;
    }
    

Anmelden zum Antworten