package chess.ai; import chess.model.Color; import chess.model.Piece; import chess.model.PieceVisitor; import chess.model.pieces.Bishop; import chess.model.pieces.King; import chess.model.pieces.Knight; import chess.model.pieces.Pawn; import chess.model.pieces.Queen; import chess.model.pieces.Rook; public class PieceCost implements PieceVisitor { private final Color player; public PieceCost(Color color) { this.player = color; } public int getCost(Piece piece) { if (piece == null) return 0; int cost = visit(piece); if (piece.getColor() == player) cost = -cost; return cost; } @Override public Integer visitPiece(Bishop bishop) { return 3; } @Override public Integer visitPiece(King king) { return 90; } @Override public Integer visitPiece(Knight knight) { return 3; } @Override public Integer visitPiece(Pawn pawn) { return 1; } @Override public Integer visitPiece(Queen queen) { return 9; } @Override public Integer visitPiece(Rook rook) { return 5; } }