diff --git a/OOP_2B1_Project/src/backend/King.java b/OOP_2B1_Project/src/backend/King.java index 280953a..c75561a 100644 --- a/OOP_2B1_Project/src/backend/King.java +++ b/OOP_2B1_Project/src/backend/King.java @@ -10,19 +10,23 @@ class King extends Piece { @Override public List getLegalMoves(Board board, int row, int col) { + // row = current Y, col = current X List moves = new ArrayList<>(); - for (int dr = -1; dr <= 1; dr++) { - for (int dc = -1; dc <= 1; dc++) { - if (dr == 0 && dc == 0) continue; - int r = row + dr; - int c = col + dc; - if (board.isInBounds(r, c)) { - Piece target = board.getPieceAt(r, c); + for (int dy = -1; dy <= 1; dy++) { + for (int dx = -1; dx <= 1; dx++) { + if (dy == 0 && dx == 0) continue; + int newY = row + dy; + int newX = col + dx; + // Check bounds with (x, y) + 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 there's a target, it's a capture + if (target != null) { + moves.add(new Move(this, row, col, newY, newX, target)); + } else { + moves.add(new Move(this, row, col, newY, newX)); + } } } }