当u和v是硬编码的数字时,这个递归函数非常有效,但是当我用字母替换它们时它会停止工作,我不知道问题是什么。
function findPath(x,y,u,v) {
if(x < 1 || x > n || y < 1 || y > n) return false;
if(u < 1 || u > n || v < 1 || v > n) return false;
if(x == u && y == v) {
arr[u][v].className = 'marked';
return true;
}
if(arr[x][y].className != 'path')
return false;
else {
arr[x][y].className = 'marked';
if(findPath(x-1,y)) return true;
if(findPath(x+1,y)) return true;
if(findPath(x,y+1)) return true;
if(findPath(x,y-1)) return true;
}
arr[x][y].className = 'path';
}
drawGrid(n);
findPath(1,1,7,4);