From c1bf9bcaf9e5841ba6e548fa38bedb5475910e70 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sat, 10 May 2025 18:08:55 +0200 Subject: [PATCH] remove PawnIdentifier --- .../controller/commands/PromoteCommand.java | 4 +- app/src/main/java/chess/model/ChessBoard.java | 5 +- .../chess/model/visitor/PawnIdentifier.java | 52 ------------------- .../chess/model/visitor/PiecePathChecker.java | 3 +- 4 files changed, 6 insertions(+), 58 deletions(-) delete mode 100644 app/src/main/java/chess/model/visitor/PawnIdentifier.java diff --git a/app/src/main/java/chess/controller/commands/PromoteCommand.java b/app/src/main/java/chess/controller/commands/PromoteCommand.java index 5eddd20..dcf755d 100644 --- a/app/src/main/java/chess/controller/commands/PromoteCommand.java +++ b/app/src/main/java/chess/controller/commands/PromoteCommand.java @@ -9,9 +9,9 @@ import chess.model.Game; import chess.model.Piece; import chess.model.pieces.Bishop; import chess.model.pieces.Knight; +import chess.model.pieces.Pawn; import chess.model.pieces.Queen; import chess.model.pieces.Rook; -import chess.model.visitor.PawnIdentifier; public class PromoteCommand extends PlayerCommand { @@ -43,7 +43,7 @@ public class PromoteCommand extends PlayerCommand { return CommandResult.NotAllowed; Piece pawn = board.pieceAt(this.pieceCoords); - if (!new PawnIdentifier(game.getPlayerTurn()).isPawn(pawn)) + if (!(pawn instanceof Pawn)) return CommandResult.NotAllowed; int destY = this.pieceCoords.getY(); diff --git a/app/src/main/java/chess/model/ChessBoard.java b/app/src/main/java/chess/model/ChessBoard.java index a4dad60..918d38a 100644 --- a/app/src/main/java/chess/model/ChessBoard.java +++ b/app/src/main/java/chess/model/ChessBoard.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Objects; import chess.model.pieces.King; -import chess.model.visitor.PawnIdentifier; +import chess.model.pieces.Pawn; import chess.model.visitor.PiecePathChecker; public class ChessBoard { @@ -296,13 +296,12 @@ public class ChessBoard { */ private Coordinate pawnPromotePosition(Color color) { int enemyLineY = color == Color.White ? 0 : 7; - PawnIdentifier identifier = new PawnIdentifier(color); for (int x = 0; x < Coordinate.VALUE_MAX; x++) { Coordinate pieceCoords = new Coordinate(x, enemyLineY); Piece piece = pieceAt(pieceCoords); - if (identifier.isPawn(piece)) + if (piece instanceof Pawn) return pieceCoords; } diff --git a/app/src/main/java/chess/model/visitor/PawnIdentifier.java b/app/src/main/java/chess/model/visitor/PawnIdentifier.java deleted file mode 100644 index 9046032..0000000 --- a/app/src/main/java/chess/model/visitor/PawnIdentifier.java +++ /dev/null @@ -1,52 +0,0 @@ -package chess.model.visitor; - -import chess.model.Color; -import chess.model.Piece; -import chess.model.PieceVisitor; -import chess.model.pieces.*; - -public class PawnIdentifier implements PieceVisitor { - - private final Color color; - - public PawnIdentifier(Color color) { - this.color = color; - } - - public boolean isPawn(Piece piece) { - if (piece == null) - return false; - return visit(piece); - } - - @Override - public Boolean visitPiece(Bishop bishop) { - return false; - } - - @Override - public Boolean visitPiece(King king) { - return false; - } - - @Override - public Boolean visitPiece(Knight knight) { - return false; - } - - @Override - public Boolean visitPiece(Pawn pawn) { - return pawn.getColor() == color; - } - - @Override - public Boolean visitPiece(Queen queen) { - return false; - } - - @Override - public Boolean visitPiece(Rook rook) { - return false; - } - -} diff --git a/app/src/main/java/chess/model/visitor/PiecePathChecker.java b/app/src/main/java/chess/model/visitor/PiecePathChecker.java index 5903c88..f0b18d1 100644 --- a/app/src/main/java/chess/model/visitor/PiecePathChecker.java +++ b/app/src/main/java/chess/model/visitor/PiecePathChecker.java @@ -104,10 +104,11 @@ public class PiecePathChecker implements PieceVisitor { Coordinate middle = lastMove.getMiddle(); if (middle.equals(this.move.getFinish()) - && new PawnIdentifier(pieceToEat.getColor()).isPawn(pieceToEat)) { + && pieceToEat instanceof Pawn) { this.move.setDeadPieceCoords(lastMove.getFinish()); return true; } + return false; }