次のメソッドを Point クラスに追加します。
public int manhattanDistance(Point other)
現在の Point オブジェクトと指定された他の Point オブジェクトの間の「マンハッタン距離」を返します。マンハッタン距離は、マンハッタンの通りを運転しているかのように、2 つの場所の間を水平または垂直に移動するだけで移動できる場合の距離を指します。この場合、マンハッタン距離は座標の差の絶対値の合計です。言い換えれば、差とx
ポイント
y
間の差です。
public class Point {
private int x;
private int y;
// constructs a new point at the origin, (0, 0)
public Point() {
this(0, 0); // calls Point(int, int) constructor
}
// constructs a new point with the given (x, y) location
public Point(int x, int y) {
setLocation(x, y);
}
// returns the distance between this Point and (0, 0)
public double distanceFromOrigin() {
return Math.sqrt(x * x + y * y);
}
// returns the x-coordinate of this point
public int getX() {
return x;
}
// returns the y-coordinate of this point
public int getY() {
return y;
}
// sets this point's (x, y) location to the given values
public void setLocation(int x, int y) {
this.x = x;
this.y = y;
}
// returns a String representation of this point
public String toString() {
return "(" + x + ", " + y + ")";
}
// shifts this point's location by the given amount
public void translate(int dx, int dy) {
setLocation(x + dx, y + dy);
}
public int manhattanDistance(Point other){
/// int distance = Math.abs(x-other) + Math.abs(y-other);
return Math.abs(x - other)+ Math.abs(y - other) ;
}
}