package com.soulnew;
/**
*
* @author soulnew@soulnew.com
*/
import java.util.*;
import java.math.*;
public class AStarNode {
/** Creates a new instance of AStarNode */
public AStarNode(String name, int x, int y) {
neighbors = new LinkedList();
this.x = x;
this.y = y;
this.name = name;
}
public AStarNode(int x, int y) {
neighbors = new LinkedList();
this.x = x;
this.y = y;
this.name = "(" + x + "," + y + ")";
}
String name;
int costFromStart;
int estimatedCostToGoal;
public int x, y;
AStarNode pathParent;
List neighbors;
public String toString() {
return name;
}
public int getEstimatedCost(AStarNode node) { //
int dx = this.x - node.x;
int dy = this.y - node.y;
return (int) Math.sqrt(dx * dx + dy * dy);
}
public List getNeighbors() {
return neighbors;
}
public int getCost(AStarNode node) {
int dx = this.x - node.x;
int dy = this.y - node.y;
return (int) Math.sqrt(dx * dx + dy * dy);
}
public int getDistance(AStarNode node){
int dx = 10*(this.x - node.x);
int dy = 10*(this.y - node.y);
return (int) Math.sqrt(dx * dx + dy * dy);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof AStarNode) {
AStarNode node1 = (AStarNode) obj;
return this.x == node1.x && this.y == node1.y;
}
return super.equals(obj);
}
}