basic model

This commit is contained in:
2025-03-25 22:36:28 +01:00
parent dc2ea660ff
commit 0bef89c46f
16 changed files with 688 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package chess.model;
public class Move {
private final Coordinate start;
private final Coordinate finish;
public Move(Coordinate start, Coordinate finish) {
this.start = start;
this.finish = finish;
}
public boolean isValid() {
return this.start.isValid() && this.finish.isValid() && !this.start.equals(this.finish);
}
public Coordinate getStart() {
return start;
}
public Coordinate getFinish() {
return finish;
}
public int traversedCells() {
assert isValid() : "Move is invalid!";
int diffX = getFinish().getX() - getStart().getX();
int diffY = getFinish().getY() - getStart().getY();
assert Math.abs(diffX) < Coordinate.VALUE_MAX : "Move is too big!";
assert Math.abs(diffX) < Coordinate.VALUE_MAX : "Move is too big!";
if (diffX == 0)
return Math.abs(diffY);
if (diffY == 0)
return Math.abs(diffX);
if (Math.abs(diffX) == Math.abs(diffY))
return Math.abs(diffX);
return 0;
}
}