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,46 @@
package chess.model;
public enum Direction {
Unset(65),
Front(8), Back(-8), Left(-1), Right(1),
FrontLeft(7), FrontRight(9), BackLeft(-9), BackRight(-7);
private final int indexOffset;
Direction(int indexOffset) {
this.indexOffset = indexOffset;
}
public int getIndexOffset() {
return indexOffset;
}
public static Direction findDirection(Move move) {
assert move.isValid() : "Move is invalid!";
int diffX = move.getFinish().getX() - move.getStart().getX();
int diffY = move.getFinish().getY() - move.getStart().getY();
if (diffX == 0 && diffY < 0)
return Direction.Back;
if (diffX == 0 && diffY > 0)
return Direction.Front;
if (diffX < 0 && diffY == 0)
return Direction.Left;
if (diffX > 0 && diffY == 0)
return Direction.Right;
if (diffX < 0 && -diffX == diffY)
return Direction.FrontLeft;
if (diffX > 0 && diffX == diffY)
return Direction.FrontRight;
if (diffY < 0 && diffX == diffY)
return Direction.BackLeft;
if (diffY > 0 && diffX == -diffY)
return Direction.BackRight;
return Direction.Unset;
}
}