Files
3DChess/app/src/main/java/chess/ai/PieceCost.java
2025-04-17 08:53:21 +02:00

61 lines
1.0 KiB
Java

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<Integer> {
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;
}
}