From 2b8c9c995c28ba129e3e05eb8bbbe5ca5f630a2a Mon Sep 17 00:00:00 2001 From: yohanmontagne Date: Wed, 7 May 2025 16:23:21 +0200 Subject: [PATCH] Finishing user touch added also an element so that a part cannot be moved onto its own color. --- OOP_2B1_Project/src/backend/Board.java | 31 ++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/OOP_2B1_Project/src/backend/Board.java b/OOP_2B1_Project/src/backend/Board.java index 2247d97..ea69b72 100644 --- a/OOP_2B1_Project/src/backend/Board.java +++ b/OOP_2B1_Project/src/backend/Board.java @@ -136,8 +136,7 @@ private ArrayList highlightedPositions = new ArrayList<>(); public void userTouch(int x, int y) { if (selectedX == null && selectedY == null) { - - + Piece pieceAtPos = getPieceAt(x, y); if (pieceAtPos != null) { @@ -156,16 +155,30 @@ private ArrayList highlightedPositions = new ArrayList<>(); Piece pieceToMove = getPieceAt(selectedX, selectedY); if (pieceToMove != null) { - - pieces.remove(pieceToMove); - pieces.add(new Piece(pieceToMove.isWhite(), pieceToMove.getType(), x, y)); - - turnNumber++; - turnIsWhite = !turnIsWhite; - + Piece pieceAtDestination = getPieceAt(x, y); + + + if (pieceAtDestination == null || + pieceAtDestination.isWhite() != pieceToMove.isWhite()) { + + + if (pieceAtDestination != null) { + pieces.remove(pieceAtDestination); + } + + + pieces.remove(pieceToMove); + pieces.add(new Piece(pieceToMove.isWhite(), pieceToMove.getType(), x, y)); + + + turnNumber++; + turnIsWhite = !turnIsWhite; + } + } + selectedX = null; selectedY = null; }