This commit is contained in:
bensefia 2025-05-07 14:15:39 +02:00
parent 7ba645ba91
commit d7e3febf2e
1 changed files with 20 additions and 28 deletions

View File

@ -88,34 +88,26 @@ public class Board {
computeHighlightedPositions(clickedPiece);
}
} else {
if (selectedX == x && selectedY == y) {
selectedX = null;
selectedY = null;
highlightedPositions.clear();
} else {
Piece selectedPiece = getPieceAt(selectedX, selectedY);
if (selectedPiece != null && selectedPiece.isWhite() == turnIsWhite) {
if (isHighlighted(x, y)) {
Piece captured = getPieceAt(x, y);
pieces.removeIf(p -> p.getX() == x && p.getY() == y);
pieces.removeIf(p -> p.getX() == selectedX && p.getY() == selectedY);
Piece moved = new Piece(
selectedPiece.isWhite(),
selectedPiece.getType(),
x,
y
);
pieces.add(moved);
Move move = new Move(selectedPiece, selectedX, selectedY, x, y, captured);
moveHistory.push(move);
turnNumber++;
turnIsWhite = !turnIsWhite;
}
}
selectedX = null;
selectedY = null;
highlightedPositions.clear();
Piece selectedPiece = getPieceAt(selectedX, selectedY);
if (selectedPiece != null && selectedPiece.isWhite() == turnIsWhite) {
Piece captured = getPieceAt(x, y);
pieces.removeIf(p -> p.getX() == x && p.getY() == y);
pieces.removeIf(p -> p.getX() == selectedX && p.getY() == selectedY);
Piece moved = new Piece(
selectedPiece.isWhite(),
selectedPiece.getType(),
x,
y
);
pieces.add(moved);
Move move = new Move(selectedPiece, selectedX, selectedY, x, y, captured);
moveHistory.push(move);
turnNumber++;
turnIsWhite = !turnIsWhite;
}
selectedX = null;
selectedY = null;
highlightedPositions.clear();
}
}
@ -155,6 +147,7 @@ public class Board {
highlightedPositions.clear();
highlightedPositions.addAll(getLegalMovesFor(piece));
}
private ArrayList<int[]> getLegalMovesFor(Piece piece) {
ArrayList<int[]> moves = new ArrayList<>();
int x = piece.getX();
@ -343,4 +336,3 @@ public class Board {
}
}