From 076adb02918524d19e99b77b22728e980cc313d4 Mon Sep 17 00:00:00 2001 From: Tilman Crosetti Date: Tue, 13 May 2025 14:51:11 +0200 Subject: [PATCH] King --- OOP_2B1_Project/src/backend/King.java | 40 +++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/OOP_2B1_Project/src/backend/King.java b/OOP_2B1_Project/src/backend/King.java index 487c574..3d31626 100644 --- a/OOP_2B1_Project/src/backend/King.java +++ b/OOP_2B1_Project/src/backend/King.java @@ -1,5 +1,41 @@ package backend; -public class King { +import java.util.ArrayList; +import java.util.List; -} +public class King extends Piece { + public King(boolean isWhite, int x, int y) { + super(isWhite, PieceType.King, x, y); + } + + @Override + public PieceType getType() { + return PieceType.King; + } + + @Override + public List getLegalMoves(Board board, int row, int col) { + List moves = new ArrayList<>(); + int[] d = {-1, 0, 1}; + + for (int dr : d) { + for (int dc : d) { + if (dr == 0 && dc == 0) continue; + int r = row + dr; + int c = col + dc; + if (board.isInBounds(r, c)) { + Piece p = board.getPieceAt(r, c); + if (p == null || p.isWhite() != this.isWhite) + moves.add(new Move(this, row, col, r, c)); + } + } + } + + return moves; + } + + @Override + public Piece clone() { + return new King(this.isWhite, this.x, this.y); + } +} \ No newline at end of file