Sliding pieces moves are now illegal if after piece of same color
This commit is contained in:
@@ -8,6 +8,24 @@ final class Bishop: Piece, DiagonalMoves {
|
||||
return getDiagonalMoves(from: position)
|
||||
}
|
||||
|
||||
override func getLegalPosition() {
|
||||
legalPositions = []
|
||||
var last: Square.Position? = nil
|
||||
for position in pseudoLegalPositions {
|
||||
if !isLegal(on: position) {
|
||||
last = position
|
||||
continue
|
||||
}
|
||||
|
||||
if !DiagonalDirection.isLegal(last: &last, current: position) {
|
||||
last = nil
|
||||
}
|
||||
if last == nil {
|
||||
legalPositions.append(position)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override func isLegal(on pos: Square.Position) -> Bool {
|
||||
super.isLegal(on: pos)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user