private static bool CastlePiecesHaveNotBeenMoved(King king, Board board, CastleType castleType) { if (king.HasBeenMoved) { return(false); } var rookSquare = board[king.GetCastleRookStartingSquare(castleType)]; return(rookSquare.Piece != null && !rookSquare.Piece.HasBeenMoved); }
private Move GetCastleMove(Board board, King king, CastleType castleType) { var rook = board[king.GetCastleRookStartingSquare(castleType)].Piece as Rook; return(new Castle(king, rook, board, castleType)); }