目标来源:路径是否存在?

时间:2014-09-17 17:19:59

标签: java path grid src

这段代码有什么问题?它试图将访问过的坐标标记为1,以便不重新访问它们,然后从水平或垂直目标点添加或减去一个并重复该过程。

public static boolean pathExists(int destX,
        int destY, int sourceX, int sourceY) {
    if (sourceY == destY && sourceX == destX) {
        return true;
    }

if ((coordinates[destX][destY] == 0) && isMoveableTo(destX, destY)) {

                coordinates[destX][destY] = 1;          
                return ((pathExists(destX + 1, destY, sourceX, sourceY) && isMoveableTo(destX + 1, destY))
                        || (pathExists(destX, destY + 1, sourceX, sourceY) && isMoveableTo(destX, destY + 1))
                        || (pathExists(destX - 1, destY, sourceX, sourceY) && isMoveableTo(destX - 1, destY))
                        || (pathExists(destX, destY - 1, sourceX, sourceY) && isMoveableTo(destX, destY - 1))); 
}
return false;
}

问题在于,它既可以从destX中减去1,又可以同时从destY减去1,尝试对角移动,这是不可能的。

谢谢。

0 个答案:

没有答案