diff --git a/src/backend/Board.java b/src/backend/Board.java index 31181ca..d61b277 100644 --- a/src/backend/Board.java +++ b/src/backend/Board.java @@ -409,7 +409,26 @@ public class Board { board[move.getFromY()][move.getFromX()].setY(move.getToY()); board[move.getToY()][move.getToX()] = board[move.getFromY()][move.getFromX()]; board[move.getFromY()][move.getFromX()] = null; + + for (int x = 0; x < colNum; x++) { + for (int y = 0; y < lineNum; y++) { + canPromote(x, y); + } + } this.states.add(toString()); } + + ArrayList promoPieces= new ArrayList<>(); + boolean promotion; -} + private boolean canPromote(int x, int y) { + if (board[y][x] != null && board[y][x].getType() == PieceType.Pawn) { + boolean isWhite = board[y][x].isWhite(); // ✅ Declare 'isWhite' here + if ((isWhite && y == 0) || (!isWhite && y == 7)) { + board[y][x] = new Piece(isWhite, PieceType.Queen, x, y); // ✅ Now valid + return true; + } + } + return false; + } + } diff --git a/src/backend/Piece.java b/src/backend/Piece.java index cc7468f..0169e42 100644 --- a/src/backend/Piece.java +++ b/src/backend/Piece.java @@ -1,5 +1,7 @@ package backend; +import java.util.ArrayList; + public class Piece { private int x; @@ -44,5 +46,6 @@ public class Piece { this.x = piece.x; this.y = piece.y; } + } diff --git a/src/backend/PieceType.java b/src/backend/PieceType.java index baceab1..4eb4c74 100644 --- a/src/backend/PieceType.java +++ b/src/backend/PieceType.java @@ -1,5 +1,7 @@ package backend; +import java.util.ArrayList; + public enum PieceType { Pawn, Rook, Knight, Bishop, Queen, King;