2016-02-18 19 views
1

我把我的迷宮類的迷宮,我的遞歸在布爾,所以每次當我嘗試將其打印出來,它會回到課程並打印原始地圖而不是進度。你有任何其他方式來做到這一點?我有一段代碼,它即刻解決迷宮,我希望它打印每一步它使

class Maze { 


String[][] (map of the maze) 

    public void print_maze() { 
    bla bla bla 


    } // print the maze 



public boolean solve (int i, int j) throws InterruptedException { 

     Maze labyrinth = new Maze();| 
            |i tried to print the maze like this 
     labyrinth.print_maze();  |and they keep printing original maze 
            | 
     boolean done = false; 

     if (valid (i, j)) { 

     grid[i][j] = "C"; // cell has been tried 

     if (i== grid[0].length-8 && j == grid[0].length-1) 
      {done = true;} // maze is solved 
     else { 

      done = solve (i+1, j); // down 

      if (!done) 
       done = solve (i, j+1); // right 

      if (!done) 
       done = solve (i-1, j); // up 

      if (!done) 
       done = solve (i, j-1); // left 


     } 

     if (done) // part of the final path 
      grid[i][j] = "X"; 
     // labyrinth.print_maze(); 
     } 

     return done; 
+0

你就不能打印網格? – anaxin

+1

我沒有看到您更新迷宮對象的位置。所以無論你打電話到哪裏,labyrinth.print_maze()都會打印出原始設計。 – Frank

回答

1

你的,你不要你執行的類和你的對象區分的問題(儘量讓你的迷宮類的外部執行類,你會看到,我的意思)。你應該嘗試類似:

labyrinth.grid[i][j]="x"; 

,而不是你的代碼在最後一個行之一,因爲你的對象迷宮你要更改的對象,而不是迷宮你是:-)。或者,您可以撥打print_maze()而無需labyrinth,因爲您已經在一個。

相關問題