나는 미로를 만들기 위해 이미 모든 것을 포함하고있는 코드를 받았습니다. 이를미로 솔버, 대각선 이동에만
int MAX_ROWS = endRow + 1;
int MAX_COLS = endCol + 1;
boolean[][]visited = new boolean[MAX_ROWS][MAX_COLS];
protected void makeMove(int row, int col)
{
boolean found = false;
if (row < 0 || row >= MAX_ROWS || col < 0 || col >= MAX_COLS || visited[row][col] || maze[row][col] == 1)
return;
visited[row][col] = true;
found = row == endRow && col == endCol;
if (!found) {
makeMove(row, col - 1);
makeMove(row, col + 1);
makeMove(row - 1, col);
makeMove(row + 1, col);
}
System.out.print("\n[" + row + "," + col + "] "); // display location
}//end makeMove
}이와
가 시작이 왼쪽 상단에 있다고 가정하고 끝이 오른쪽 아래에 있습니다 : 나는 여기에 완료 한 미로를 해결하기 위해 makeMove 방법을 작성했다 코드는 정상적으로 작동합니다.
단지 대각선 이동이 가능하도록하지만, 지금은
.... 그것을 수정해야하고 나는이
감사를 수행하는 방법에 빈 그리기, 여전히 스탠드에 있어요 당신이 코드가 벽을 통과 할 수 있도록 할 것 때문에 어떠한 모두를 위해,
도움이됩니다. –
@MarcB 나는 그것이 maze [row] [col] == 1이 무엇을위한 것이라고 생각한다. – Zong
@MarB a '1'은 벽을 나타냅니다. 벽에 부딪혔을 경우 역 추적합니다. – user2745043