Files
artloglaby/java/org/artisanlogiciel/games/maze/Position.java
philippe lhardy 02fda1fc2e refactoring, deploy Position and XYGridIterator
- try to use more Position instead of (x,y)
  - create PositionWithDpeth for its specific usage in path finding
- create a XYGridITerator that walk cells from grid X then Y.
2020-12-28 20:05:10 +01:00

86 lines
1.4 KiB
Java

package org.artisanlogiciel.games.maze;
/** position of a cell with maze */
public class Position
{
private int x, y;
public Position(int x, int y)
{
this.x = x;
this.y = y;
}
public Position(Position other)
{
this.x = other.x;
this.y = other.y;
}
public int getX()
{
return this.x;
}
public int getY()
{
return this.y;
}
public Position translate(Position other) {
return new Position(x + other.x, y + other.y);
}
public Position doTranslate(Position other) {
x += other.x;
y += other.y;
return this;
}
public void limitToMax(int mx, int my)
{
x = Math.min(x,mx);
y = Math.min(y,my);
}
public void limitToMin(int mx, int my)
{
x = Math.max(x,mx);
y = Math.max(y,my);
}
public Position setX(int x)
{
this.x = x;
return this;
}
public Position setY(int y)
{
this.y = y;
return this;
}
public String toString()
{
return "(" + x + "," + y + ")";
}
public boolean equals(Object other)
{
// disregards depth
if (other instanceof Position )
{
Position p = (Position) other;
return (p.getX() == x) && (p.getY() == y);
}
else
{
return false;
}
}
}