castling
This commit is contained in:
24
King.java
24
King.java
@@ -30,6 +30,30 @@ public class King extends Piece {
|
||||
positions.add(test);
|
||||
}
|
||||
}
|
||||
int colorPos = this.color.equals("White") ? 7 : 0;
|
||||
boolean leftOpen = true;
|
||||
boolean rightOpen = true;
|
||||
if (!this.hasMoved && !inCheck(board,pos)){
|
||||
if(board.getPiece(7,colorPos) instanceof Rook && !Rook.class.cast(board.getPiece(7,colorPos)).hasMoved){
|
||||
ArrayList<Position> right = this.slide(board,1,0,2);
|
||||
|
||||
for (Position p : new ArrayList<>(right)){
|
||||
if (inCheck(board,p)){
|
||||
rightOpen = false;
|
||||
}
|
||||
}
|
||||
if (rightOpen) {positions.add(new Position(pos.x+2,pos.y));}
|
||||
}
|
||||
if (board.getPiece(0,colorPos) instanceof Rook && !Rook.class.cast(board.getPiece(0,colorPos)).hasMoved){
|
||||
|
||||
ArrayList<Position> left = this.slide(board,-1,0,2);
|
||||
for (Position p : new ArrayList<>(left)){
|
||||
if (inCheck(board,p)){
|
||||
leftOpen = false;
|
||||
}
|
||||
}
|
||||
if (leftOpen) positions.add(new Position(pos.x - 2, pos.y));
|
||||
}}
|
||||
|
||||
return positions;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user