Question: Please generate test method to verify if code is working and debug if it's not. public class Maze { private char[][] maze; private boolean[][] visited;

Please generate test method to verify if code is working and debug if it's not.

public class Maze {

private char[][] maze; private boolean[][] visited; private int height; private int width;

public Maze(char[][] maze) { this.maze = maze; this.height = maze.length; this.width = maze[0].length; this.visited = new boolean[height][width]; }

public void escape(int startX, int startY) { Queue queueX = new LinkedList<>(); Queue queueY = new LinkedList<>();

queueX.add(startX); queueY.add(startY);

while (!queueX.isEmpty()) { int x = queueX.remove(); int y = queueY.remove();

if (x < 0 || x >= height || y < 0 || y >= width || visited[x][y] || maze[x][y] == '*') { // we have hit a wall or visited this cell before continue; }

// mark this cell as visited visited[x][y] = true;

if (y == width - 1) { // we have found the exit! maze[x][y] = '+'; break; }

// add unvisited neighbors to the queue queueX.add(x); queueY.add(y + 1); // right queueX.add(x); queueY.add(y - 1); // left queueX.add(x + 1); queueY.add(y); // down queueX.add(x - 1); queueY.add(y); // up }

// mark any unvisited cells as walls for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (!visited[i][j]) { maze[i][j] = '*'; } } } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!