我获得了一些代码,其中包含了构建迷宫的所有内容。我写的是makeMove方法来解决迷宫,我在这里完成了:
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
}
假设开头位于左上角,而结尾位于右下角,此代码的工作方式与此相符。
然而,现在我需要修改它,以便它只允许对角移动....
我现在停滞不前,在如何完成这个
上留下了空白感谢您提供的任何帮助
答案 0 :(得分:1)
使用
makeMove(row - 1, col - 1);
makeMove(row - 1, col + 1);
makeMove(row + 1, col - 1);
makeMove(row + 1, col + 1);