[Java] 纯文本查看 复制代码
private boolean goStack(int x, int y) {
Stack<Position> stack = new Stack<>();
stack.push(new Position(x,y));
// LinkedList<Position> queue = new LinkedList<>();
// queue.addLast(new Position(x,y));
setData(x,y,true);
boolean isResolved = false;
while (stack.size() != 0){
Position curPos = stack.pop();
data.visited[curPos.getX()][curPos.getY()] = true;
setData(curPos.getX(), curPos.getY(),true);
if (curPos.getX() == data.getExitX() && curPos.getY() == data.getExitY()) {
isResolved = true;
showResult(curPos);
setData(curPos.getX(), curPos.getY(),true);
break;
}
//向四个方向寻找出口
for (int i = 0; i < 4; i++) {
int newX = curPos.getX() + data.d[0];
int newY = curPos.getY() + data.d[1];
if (data.inArea(newX,newY)&&
data.getMaze(newX,newY)==MazeData.ROAD&&
data.visited[newX][newY] == false)
stack.push(new Position(newX, newY, curPos));
}
}
return isResolved;
}