diff --git a/OOP_2B1_Project/src/backend/Knight.java b/OOP_2B1_Project/src/backend/Knight.java index d8c7e43..ef5c626 100644 --- a/OOP_2B1_Project/src/backend/Knight.java +++ b/OOP_2B1_Project/src/backend/Knight.java @@ -10,22 +10,27 @@ class Knight extends Piece { @Override public List getLegalMoves(Board board, int row, int col) { + List moves = new ArrayList<>(); + // Knight moves int[][] offsets = { - {-2, -1}, {-2, 1}, {-1, -2}, {-1, 2}, - {1, -2}, {1, 2}, {2, -1}, {2, 1} + {-2, -1}, {-2, 1}, + {-1, -2}, {-1, 2}, + { 1, -2}, { 1, 2}, + { 2, -1}, { 2, 1} }; for (int[] offset : offsets) { - int r = row + offset[0]; - int c = col + offset[1]; - if (board.isInBounds(r, c)) { - Piece target = board.getPieceAt(r, c); + int newY = row + offset[0]; + int newX = col + offset[1]; + if (board.isInBounds(newX, newY)) { + Piece target = board.getPieceAt(newX, newY); if (target == null || target.isWhite() != isWhite) { - if (target != null) - moves.add(new Move(this, row, col, r, c, target)); - else - moves.add(new Move(this, row, col, r, c)); + if (target != null) { + moves.add(new Move(this, row, col, newY, newX, target)); + } else { + moves.add(new Move(this, row, col, newY, newX)); + } } } }