需要android java*寻路帮助
我遇到了以下链接: 作为测试,我已经让代码正常工作了,但是我 不确定如何更改目标节点--默认值为bottom 是的,但我不确定您将如何将其更改为其他行/列需要android java*寻路帮助,java,android,path-finding,Java,Android,Path Finding,我遇到了以下链接: 作为测试,我已经让代码正常工作了,但是我 不确定如何更改目标节点--默认值为bottom 是的,但我不确定您将如何将其更改为其他行/列 谢谢看来目标是在函数中定义的 protected boolean isGoal(Node node){ return (node.x == map[0].length - 1) && (node.y == map.length - 1);
谢谢看来目标是在函数中定义的
protected boolean isGoal(Node node){
return (node.x == map[0].length - 1) && (node.y == map.length - 1);
}
将其更改为您的需要。我认为问题在于代码的这一部分:
protected List<Node> generateSuccessors(Node node){
List<Node> ret = new LinkedList<Node>();
int x = node.x;
int y = node.y;
if(y < map.length - 1 && map[y+1][x] == 1)
ret.add(new Node(x, y+1));
if(x < map[0].length - 1 && map[y][x+1] == 1)
ret.add(new Node(x+1, y));
return ret;
}
从
它可以工作,但执行速度非常慢,有没有减少执行时间的建议?谢谢--另一个问题是代码没有找到所有路径,它似乎只能从左到右扫描路径,而不是说全部,您或其他人知道更改有多容易吗?代码非常适合我想要的,除了它只从左到右扫描之外……Thansk您是指算法的起始位置吗?您可以在节点构造函数中更改它。不,我的意思是代码似乎只找到从左上到右下的路径,而不是例如left-right-left-left-down-left,即使数组中有1的有效路径。谢谢
if(y > 0 && map[y-1][x] == 1)
ret.add(new Node(x, y-1));
if(x > 0 && map[y][x-1] == 1)
ret.add(new Node(x-1, y));