正在写一个A*路径搜索用于工兵扫雷
把可以放棋子的位置看成是AstarNode
public class AstarNode implements Comparable{
public float getCost(AStarNode node){
}
public float getEstimatedCost(AStarNode node){
}
public List getNeighbors(){//得到节点的邻节点
}
}怎么加入它们的邻节点呢?怎么实现getNeighbors()希望有这方面经验的高手给予指点
把可以放棋子的位置看成是AstarNode
public class AstarNode implements Comparable{
public float getCost(AStarNode node){
}
public float getEstimatedCost(AStarNode node){
}
public List getNeighbors(){//得到节点的邻节点
}
}怎么加入它们的邻节点呢?怎么实现getNeighbors()希望有这方面经验的高手给予指点
private ArrayList<AstarNode> neighborList = new ArrayList<AstarNode>();
public float getCost(AStarNode node){
}
public float getEstimatedCost(AStarNode node){
}
public ArrayList<AstarNode> getNeighbors(){//得到节点的邻节点
return this.neighborList;
}
addNeighbors(AstarNode node) {
this.neighborList.add(node);
}
}
this.neighborList.add(node);
}
public List getNeighbors(){
while(!SapperSearch.list.contains(new AstarNode(this.point.i))){
this.point.i++;
······
}
我打算通过向上、向下、向左、向右查看所生成节点是否是属于我定义过节点,是的话就加入到列表中,根据这种方式来加入邻节点!但是,为来查看是否包含,我必须重写equals()和hashCode()这两个方法!这有点复杂化了!
有没有更好地、有效地方法?
是否可以用BSP Tree来完成getNeighbors()呢?盼望高手给予指点!!!!
这个分送不出去,
再问大家一个问题吧,让我把分送出去呀!
大家用的是什么数据库系统?
我的操作系统是Windows XP,英特尔酷睿处理器(1.86GHz),512MB内存,大家给点建议:装哪个数据库系统比较好!