From 3e96095c66e75298d34d32cd8f8ff804e29b928a Mon Sep 17 00:00:00 2001 From: CT Date: Fri, 24 Apr 2026 15:44:13 -0500 Subject: [PATCH] idk --- Board.java | 8 ++++++++ King.java | 17 ++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Board.java b/Board.java index d8a55ca..68b8bf4 100644 --- a/Board.java +++ b/Board.java @@ -41,6 +41,14 @@ public class Board { return this.board[x][y]; } + public void setPiece(int x, int y, Piece p) { + this.board[x][y] = p; + } + + public void setPiece(Position pos, Piece p) { + this.board[pos.x][pos.y] = p; + } + public static Board copy(Board b) { Board newBoard = new Board(); diff --git a/King.java b/King.java index 6c23197..8309a2e 100644 --- a/King.java +++ b/King.java @@ -35,17 +35,28 @@ public class King extends Piece { } public ArrayList getLegalMoves(Board board) { - return null; + ArrayList positions = getPseudoLegalMoves(board); + for (Position p : new ArrayList<>(positions)) { + Piece tempPiece = board.getPiece(p); + board.setPiece(pos, tempPiece); + board.setPiece(p, this); + if (inCheck(board, p)) { + positions.remove(p); + } + board.setPiece(p, tempPiece); + board.setPiece(pos, this); + } + return positions; } - public boolean inCheck(Board board) { + public boolean inCheck(Board board, Position pos) { for (Piece[] pieces : board.board) { for (Piece p : pieces) { if (p == null) continue; if (!p.colorMatches(this) && !(p instanceof King)) { ArrayList ar = p.getLegalMoves(board); for (Position posi : ar) { - if (this.pos.equals(posi)) return true; + if (pos.equals(posi)) return true; } } }