diff --git a/OOP_2B6_PROJECT/src/backend/Board.java b/OOP_2B6_PROJECT/src/backend/Board.java index ade58c5..2333591 100644 --- a/OOP_2B6_PROJECT/src/backend/Board.java +++ b/OOP_2B6_PROJECT/src/backend/Board.java @@ -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 getLegalMovesFor(Piece piece) { ArrayList moves = new ArrayList<>(); int x = piece.getX(); @@ -343,4 +336,3 @@ public class Board { } } -