From ef5c3bce84de94d4533070c3a57df313a6c9eb45 Mon Sep 17 00:00:00 2001 From: nocturn9x Date: Mon, 16 Oct 2023 22:39:54 +0200 Subject: [PATCH] Added two missing diagonals for sliding pieces --- src/Chess/board.nim | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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: