我有一段代码,它可以立即解决迷宫问题,我希望它在走的每一步都打印出迷宫

i have a piece of code, it instantly solve the maze, i want it to print the maze every step it makes

我把迷宫放在 class 中,递归放在布尔值中,所以每次当我尝试打印它时,它都会回调 class 并打印原始地图而不是进步。你还有其他方法吗?

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;

你的问题是,你没有区分你的执行 class 和你的对象(尝试让执行 class 在你的迷宫 class 之外,你会看到, 我的意思是)。你应该尝试这样的事情:

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

而不是最后一行中的代码,因为您的对象迷宫是您要更改的对象,而不是您所在的迷宫:-)。或者你可以只调用 print_maze() 而不调用 labyrinth 因为你已经在其中了。