add BB flip_V and FLIP_H macros

This commit is contained in:
2023-07-11 22:13:06 +02:00
parent d76c10797a
commit af1f5db507
2 changed files with 15 additions and 0 deletions

View File

@@ -26,6 +26,9 @@ k7/8/8/1p1p2pP/pPpPp3/P1PpPp2/NBNP1P2/KBB1B3 w - g6 0 1
# 2 Kings, W/B/ pawns on 7th for promotion # 2 Kings, W/B/ pawns on 7th for promotion
k4n2/4P3/8/8/8/8/4p3/K4N2 w - - 0 1 k4n2/4P3/8/8/8/8/4p3/K4N2 w - - 0 1
# position after 1.e4
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1
# white castled, and can e.p. on c6 black can castle # white castled, and can e.p. on c6 black can castle
# white is a pawn down # white is a pawn down
# white has 35 or 36 moves: P=11 + 1 e.p. N=6+3 B=5+5 R=1 Q=3 K=1 + 1 e.p. # white has 35 or 36 moves: P=11 + 1 e.p. N=6+3 B=5+5 R=1 Q=3 K=1 + 1 e.p.

View File

@@ -80,6 +80,12 @@ enum {
#define SET_BLACK(p) ((p) |= MASK_COLOR) #define SET_BLACK(p) ((p) |= MASK_COLOR)
#define SET_COLOR(p, c) (!(c)? SET_WHITE(p): SET_BLACK(p)) #define SET_COLOR(p, c) (!(c)? SET_WHITE(p): SET_BLACK(p))
/* flip a 0-63 square:
* Vertical: G8 (62) becomes G1 (6)
* Horizontal: G8 (62) becomes B8 (57)
*/
#define FLIP_V(sq) ((sq) ^ 56)
#define FLIP_H(sq) ((sq) ^ 7)
/* square_t bits structure : rrrrffff /* square_t bits structure : rrrrffff
* ffff: file * ffff: file
* rrrr: rank * rrrr: rank
@@ -98,6 +104,12 @@ typedef unsigned char castle_t;
#define CASTLE_W (CASTLE_WK | CASTLE_WQ) /* 00000011 W castle mask */ #define CASTLE_W (CASTLE_WK | CASTLE_WQ) /* 00000011 W castle mask */
#define CASTLE_B (CASTLE_BK | CASTLE_BQ) /* 00001100 B castle mask */ #define CASTLE_B (CASTLE_BK | CASTLE_BQ) /* 00001100 B castle mask */
/* game phases
*/
#define OPENING 0
#define MIDDLEGAME 1
#define ENDGAME 2
/* bitboard /* bitboard
*/ */
typedef u64 bitboard_t; typedef u64 bitboard_t;