This commit is contained in:
thibaud 2025-05-07 16:27:10 +02:00
parent a16bcbf7fd
commit 5342412216
2 changed files with 0 additions and 46 deletions

View File

@ -300,32 +300,6 @@ public class Board {
selectedY = -1;
highlightedSquares.clear();
}
public boolean isKingInCheck(boolean isWhite) {
Piece king = null;
for (Piece p : pieces) {
if (p.getType() == PieceType.King && p.isWhite() == isWhite) {
king = p;
break;
}
}
if (king == null) return true;
int kingX = king.getX();
int kingY = king.getY();
for (Piece p : pieces) {
if (p.isWhite() != isWhite) {
ArrayList<int[]> moves = Move.getLegalMoves(this, p);
for (int[] move : moves) {
if (move[0] == kingX && move[1] == kingY) {
return true;
}
}
}
}
return false;
}
public Piece getPieceAt(int x, int y) {
for (Piece p : pieces) {

View File

@ -106,26 +106,6 @@ public class Move {
return moves;
}
public static ArrayList<int[]> getLegalMoves(Board board, Piece piece) {
ArrayList<int[]> legalMoves = new ArrayList<>();
ArrayList<int[]> candidateMoves = getPossibleMoves(board, piece);
for (int[] move : candidateMoves) {
Board clone = new Board(board); // Deep copy constructor
Piece moved = clone.getPieceAt(piece.getX(), piece.getY());
// Play the simulated move
Piece captured = clone.getPieceAt(move[0], move[1]);
Move simulated = new Move(moved, piece.getX(), piece.getY(), move[0], move[1], captured);
clone.playMove(simulated);
if (!clone.isKingInCheck(piece.isWhite())) {
legalMoves.add(move);
}
}
return legalMoves;
}
private static boolean isInsideBoard(Board board, int x, int y) {
return x >= 0 && x < board.getWidth() && y >= 0 && y < board.getHeight();