From da7f9739fcc8f2ae68aa48cad2da50bac9fdcc2b Mon Sep 17 00:00:00 2001 From: Admin Date: Fri, 23 May 2025 08:42:55 +0200 Subject: [PATCH] no break --- OOP_1A2_Project/bin/backend/Move.class | Bin 8421 -> 8655 bytes OOP_1A2_Project/src/backend/Move.java | 42 +++++++++++++++---------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/OOP_1A2_Project/bin/backend/Move.class b/OOP_1A2_Project/bin/backend/Move.class index dee37af2662325347036c776fe1edb0c4432189d..c8b4a21354c194dae7aecb6272d110b3b7043b2b 100644 GIT binary patch delta 2683 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 diff --git a/OOP_1A2_Project/src/backend/Move.java b/OOP_1A2_Project/src/backend/Move.java index 02c7719..c5cb3f9 100644 --- a/OOP_1A2_Project/src/backend/Move.java +++ b/OOP_1A2_Project/src/backend/Move.java @@ -133,23 +133,23 @@ public class Move { switch (piece.getType()) { case Pawn: addPawnMoves(moves, piece, board); - break; + return moves; case Rook: addRookMoves(moves, piece, board); - break; + return moves; case Knight: addKnightMoves(moves, piece, board); - break; + return moves; case Bishop: addBishopMoves(moves, piece, board); - break; + return moves; case Queen: addRookMoves(moves, piece, board); addBishopMoves(moves, piece, board); - break; + return moves; case King: addKingMoves(moves, piece, board); - break; + return moves; } return moves; @@ -177,12 +177,14 @@ public class Move { for (Piece p : board.getPieces()) { if (p.getType() == PieceType.King && p.isWhite() == isWhiteKing) { king = p; - break; + return checkIfKingUnderAttack(board, isWhiteKing, king); } } - if (king == null) return false; - + return false; + } + + private boolean checkIfKingUnderAttack(Board board, boolean isWhiteKing, Piece king) { // Check if any opponent piece can attack the king for (Piece p : board.getPieces()) { if (p.isWhite() == isWhiteKing) continue; // Skip pieces of same color @@ -250,8 +252,9 @@ public class Move { int newX = x + dx; int newY = y + dy; + boolean continueInDirection = true; - while (newX >= 0 && newX < board.getWidth() && newY >= 0 && newY < board.getHeight()) { + while (newX >= 0 && newX < board.getWidth() && newY >= 0 && newY < board.getHeight() && continueInDirection) { Piece targetPiece = board.getPieceAt(newX, newY); if (targetPiece == null) { @@ -263,11 +266,13 @@ public class Move { // Capture opponent's piece validMoves.add(new Position(newX, newY)); } - break; // Cannot move beyond a piece + continueInDirection = false; // Cannot move beyond a piece } - newX += dx; - newY += dy; + if (continueInDirection) { + newX += dx; + newY += dy; + } } } } @@ -312,8 +317,9 @@ public class Move { int newX = x + dx; int newY = y + dy; + boolean continueInDirection = true; - while (newX >= 0 && newX < board.getWidth() && newY >= 0 && newY < board.getHeight()) { + while (newX >= 0 && newX < board.getWidth() && newY >= 0 && newY < board.getHeight() && continueInDirection) { Piece targetPiece = board.getPieceAt(newX, newY); if (targetPiece == null) { @@ -325,11 +331,13 @@ public class Move { // Capture opponent's piece validMoves.add(new Position(newX, newY)); } - break; // Cannot move beyond a piece + continueInDirection = false; // Cannot move beyond a piece } - newX += dx; - newY += dy; + if (continueInDirection) { + newX += dx; + newY += dy; + } } } }