chess-puzzles

chess puzzle book generator
git clone git://git.codemadness.org/chess-puzzles
Log | Files | Refs | README | LICENSE

commit d69d3ff1075f952ebdd45af40e7580bb3003721f
parent a0e61726e8e522f6731e6eb27e18856f4fde61fb
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Wed, 20 Dec 2023 20:19:55 +0100

remove the ability to castle when the king or rook moves

Diffstat:
Mfen_to_svg.c | 19++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/fen_to_svg.c b/fen_to_svg.c @@ -559,8 +559,6 @@ main(int argc, char *argv[]) y2 = 7; place(0, x2, y2); } - /* remove the ability to castle */ - white_can_castle[0] = white_can_castle[1] = 0; } else if (piece == 'k' && y == 0 && y2 == 0 && x == 4) { /* black: kingside castling: "e8g8" */ if (x2 == 6) { @@ -575,8 +573,23 @@ main(int argc, char *argv[]) y2 = 0; place(0, x2, y2); /* clear rook square */ } - /* remove the ability to castle */ + } + + /* remove the ability to castle */ + if (piece == 'K') { + white_can_castle[0] = white_can_castle[1] = 0; + } else if (piece == 'k') { black_can_castle[0] = black_can_castle[1] = 0; + } else if (piece == 'R') { + if (x == 7 && y == 7) + white_can_castle[0] = 0; + else if (x == 0 && y == 7) + white_can_castle[1] = 0; + } else if (piece == 'r') { + if (x == 0 && y == 0) + black_can_castle[1] = 0; + else if (x == 7 && y == 0) + black_can_castle[0] = 0; } /* possible promotion: queen, knight, bishop */