diff --git a/src/Chess/board.nim b/src/Chess/board.nim index e5c7e24..69bace0 100644 --- a/src/Chess/board.nim +++ b/src/Chess/board.nim @@ -108,6 +108,8 @@ proc generateMoves(self: ChessBoard, location: Location): seq[Move] func topLeftDiagonal(piece: Piece): Location {.inline.} = (if piece.color == White: (-1, -1) else: (1, 1)) func topRightDiagonal(piece: Piece): Location {.inline.} = (if piece.color == White: (-1, 1) else: (1, -1)) +func bottomLeftDiagonal(piece: Piece): Location {.inline.} = (if piece.color == White: (-1, -1) else: (1, 1)) +func bottomRightDiagonal(piece: Piece): Location {.inline.} = (if piece.color == White: (1, 1) else: (-1, -1)) func forward(piece: Piece): Location {.inline.} = (if piece.color == Black: (1, 0) else: (-1, 0)) func doublePush(piece: Piece): Location {.inline.} = (if piece.color == Black: (2, 0) else: (-2, 0)) proc testMoveOffsets(self: ChessBoard, move: Move): bool @@ -478,10 +480,8 @@ proc generateSlidingMoves(self: ChessBoard, location: Location): seq[Move] = var piece = self.grid[location.row, location.col] doAssert piece.kind in [Bishop, Rook, Queen], &"generateSlidingMoves called on a {piece.kind}" - var directions: seq[Location] = @[piece.topRightDiagonal(), piece.topLeftDiagonal()] - echo piece, " ", location + var directions: seq[Location] = @[piece.topRightDiagonal(), piece.topLeftDiagonal(), piece.bottomLeftDiagonal(), piece.bottomRightDiagonal()] for direction in directions: - echo "dir ", direction # Slide in this direction as long as it's possible var square: Location = location @@ -491,7 +491,6 @@ proc generateSlidingMoves(self: ChessBoard, location: Location): seq[Move] = # End of board reached if not square.isValid(): break - echo square otherPiece = self.grid[square.row, square.col] # A friendly piece is in the way if otherPiece.color == piece.color: