diff --git a/OOP_2B1_Project/src/backend/Bishop.java b/OOP_2B1_Project/src/backend/Bishop.java index 6dcf357..0db016f 100644 --- a/OOP_2B1_Project/src/backend/Bishop.java +++ b/OOP_2B1_Project/src/backend/Bishop.java @@ -10,7 +10,13 @@ public class Bishop extends Piece { @Override public ArrayList> getPossibleMoves(ArrayList> board) { - ArrayList> moves = new ArrayList<>(); + // Delegate to the full method with null lastMove + return getPossibleMoves(board, null); + } + + @Override + public ArrayList> getPossibleMoves(ArrayList> board, Move lastMove) { + ArrayList> moves = new ArrayList<>();; // Initialize 8x8 move grid with false for (int i = 0; i < 8; i++) { diff --git a/OOP_2B1_Project/src/backend/Board.java b/OOP_2B1_Project/src/backend/Board.java index 0dda463..11db6a7 100644 --- a/OOP_2B1_Project/src/backend/Board.java +++ b/OOP_2B1_Project/src/backend/Board.java @@ -134,6 +134,8 @@ public class Board { if (pieceToMove instanceof Pawn && x != xm && board.get(y).get(x) == null) { // En passant capture board.get(ym).set(x, null); + lastMove = new Move(xm, ym, x, y); + } @@ -211,6 +213,8 @@ public class Board { select = true; possibleMoves = kingCheck.getLegalMoves(board.get(y).get(x), board); // possibleMoves = board.get(y).get(x).getPossibleMoves(board); + possibleMoves = board.get(y).get(x).getPossibleMoves(board, lastMove);//same as kingCheck + } else if (select == true && this.xm != x || this.ym != y){ if (isHighlighted(x,y)) { @@ -225,7 +229,6 @@ public class Board { select = false; } - possibleMoves = board.get(y).get(x).getPossibleMoves(board, lastMove);//same as kingCheck } diff --git a/OOP_2B1_Project/src/backend/King.java b/OOP_2B1_Project/src/backend/King.java index aabf6ed..206af62 100644 --- a/OOP_2B1_Project/src/backend/King.java +++ b/OOP_2B1_Project/src/backend/King.java @@ -10,7 +10,13 @@ public class King extends Piece { @Override public ArrayList> getPossibleMoves(ArrayList> board) { - ArrayList> moves = new ArrayList<>(); + // Delegate to the full method with null lastMove + return getPossibleMoves(board, null); + } + + @Override + public ArrayList> getPossibleMoves(ArrayList> board, Move lastMove) { + ArrayList> moves = new ArrayList<>(); // Initialize 8x8 move grid with false for (int i = 0; i < 8; i++) { diff --git a/OOP_2B1_Project/src/backend/Knight.java b/OOP_2B1_Project/src/backend/Knight.java index a5006f2..df0f3f3 100644 --- a/OOP_2B1_Project/src/backend/Knight.java +++ b/OOP_2B1_Project/src/backend/Knight.java @@ -10,7 +10,13 @@ public class Knight extends Piece { @Override public ArrayList> getPossibleMoves(ArrayList> board) { - ArrayList> moves = new ArrayList<>(); + // Delegate to the full method with null lastMove + return getPossibleMoves(board, null); + } + + @Override + public ArrayList> getPossibleMoves(ArrayList> board, Move lastMove) { + ArrayList> moves = new ArrayList<>(); // Initialize empty move grid for (int i = 0; i < 8; i++) { diff --git a/OOP_2B1_Project/src/backend/Queen.java b/OOP_2B1_Project/src/backend/Queen.java index c180b03..1ccb5d3 100644 --- a/OOP_2B1_Project/src/backend/Queen.java +++ b/OOP_2B1_Project/src/backend/Queen.java @@ -10,7 +10,13 @@ public class Queen extends Piece { @Override public ArrayList> getPossibleMoves(ArrayList> board) { - ArrayList> moves = new ArrayList<>(); + // Delegate to the full method with null lastMove + return getPossibleMoves(board, null); + } + + @Override + public ArrayList> getPossibleMoves(ArrayList> board, Move lastMove) { + ArrayList> moves = new ArrayList<>(); // Initialize 8x8 move grid with false for (int i = 0; i < 8; i++) { diff --git a/OOP_2B1_Project/src/backend/Rook.java b/OOP_2B1_Project/src/backend/Rook.java index 55f93db..939b647 100644 --- a/OOP_2B1_Project/src/backend/Rook.java +++ b/OOP_2B1_Project/src/backend/Rook.java @@ -10,8 +10,14 @@ public class Rook extends Piece { @Override public ArrayList> getPossibleMoves(ArrayList> board) { - ArrayList> moves = new ArrayList<>(); + // Delegate to the full method with null lastMove + return getPossibleMoves(board, null); + } + @Override + public ArrayList> getPossibleMoves(ArrayList> board, Move lastMove) { + ArrayList> moves = new ArrayList<>(); + // Initialize empty move grid for (int i = 0; i < 8; i++) { ArrayList row = new ArrayList<>();