From c37aab377021b45c86c6c19856cb2bb08ddbcedc Mon Sep 17 00:00:00 2001 From: Markus Uhlin Date: Sun, 17 Mar 2024 21:58:51 +0100 Subject: Reformatted functions --- FICS/movecheck.c | 118 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 76 insertions(+), 42 deletions(-) (limited to 'FICS') diff --git a/FICS/movecheck.c b/FICS/movecheck.c index 10f8744..ce4db9a 100644 --- a/FICS/movecheck.c +++ b/FICS/movecheck.c @@ -129,52 +129,86 @@ PUBLIC int NextPieceLoop(board_t b, int *f, int *r, int color) return 0; } -PUBLIC int InitPieceLoop(board_t b, int *f, int *r, int color) +PUBLIC int +InitPieceLoop(board_t b, int *f, int *r, int color) { - *f = 0; - *r = -1; - return 1; + *f = 0; + *r = -1; + return 1; } -/* All of the routines assume that the obvious problems have been checked */ -/* See legal_move() */ -PRIVATE int legal_pawn_move( game_state_t *gs, int ff, int fr, int tf, int tr ) +/* + * All of the routines assume that the obvious problems have been + * checked. See legal_move(). + */ +PRIVATE int +legal_pawn_move(game_state_t *gs, int ff, int fr, int tf, int tr) { - if (ff == tf) { - if (gs->board[tf][tr] != NOPIECE) return 0; - if (gs->onMove == WHITE) { - if (tr - fr == 1) return 1; - if ((fr == 1) && (tr - fr == 2) && gs->board[ff][2]==NOPIECE) return 1; - } else { - if (fr - tr == 1) return 1; - if ((fr == 6) && (fr - tr == 2) && gs->board[ff][5]==NOPIECE) return 1; - } - return 0; - } - if (ff != tf) { /* Capture ? */ - if ((ff - tf != 1) && (tf - ff != 1)) return 0; - if ((fr - tr != 1) && (tr - fr != 1)) return 0; - if (gs->onMove == WHITE) { - if (fr > tr) return 0; - if ((gs->board[tf][tr] != NOPIECE) && iscolor(gs->board[tf][tr],BLACK)) - return 1; - if (gs->ep_possible[0][ff] == 1) { - if ((tf==ff+1) && (gs->board[ff+1][fr] == B_PAWN)) return 1; - } else if (gs->ep_possible[0][ff] == -1) { - if ((tf==ff-1) && (gs->board[ff-1][fr] == B_PAWN)) return 1; - } - } else { - if (tr > fr) return 0; - if ((gs->board[tf][tr] != NOPIECE) && iscolor(gs->board[tf][tr],WHITE)) - return 1; - if (gs->ep_possible[1][ff] == 1) { - if ((tf==ff+1) && (gs->board[ff+1][fr] == W_PAWN)) return 1; - } else if (gs->ep_possible[1][ff] == -1) { - if ((tf==ff-1) && (gs->board[ff-1][fr] == W_PAWN)) return 1; - } - } - } - return 0; + if (ff == tf) { + if (gs->board[tf][tr] != NOPIECE) + return 0; + + if (gs->onMove == WHITE) { + if (tr - fr == 1) + return 1; + if (fr == 1 && + (tr - fr) == 2 && + gs->board[ff][2] == NOPIECE) + return 1; + } else { + if (fr - tr == 1) + return 1; + if (fr == 6 && + (fr - tr) == 2 && + gs->board[ff][5] == NOPIECE) + return 1; + } + + return 0; + } + + if (ff != tf) { // Capture ? + if ((ff - tf) != 1 && (tf - ff) != 1) + return 0; + if ((fr - tr) != 1 && (tr - fr) != 1) + return 0; + + if (gs->onMove == WHITE) { + if (fr > tr) + return 0; + if (gs->board[tf][tr] != NOPIECE && + iscolor(gs->board[tf][tr], BLACK)) + return 1; + + if (gs->ep_possible[0][ff] == 1) { + if (tf == (ff + 1) && gs->board[ff + 1][fr] == + B_PAWN) + return 1; + } else if (gs->ep_possible[0][ff] == -1) { + if (tf == (ff - 1) && gs->board[ff - 1][fr] == + B_PAWN) + return 1; + } + } else { + if (tr > fr) + return 0; + if (gs->board[tf][tr] != NOPIECE && + iscolor(gs->board[tf][tr], WHITE)) + return 1; + + if (gs->ep_possible[1][ff] == 1) { + if (tf == (ff + 1) && gs->board[ff + 1][fr] == + W_PAWN) + return 1; + } else if (gs->ep_possible[1][ff] == -1) { + if (tf == (ff - 1) && gs->board[ff - 1][fr] == + W_PAWN) + return 1; + } + } + } + + return 0; } PRIVATE int -- cgit v1.2.3