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