From 5d862ebc83cab49eb23f4c251b150829f3470968 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 3 May 2024 16:15:19 +0800 Subject: [PATCH] Fix support for no square --- src/types.h | 4 ++-- src/variants.ini | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/types.h b/src/types.h index 41e6dc94c..4578cea5d 100644 --- a/src/types.h +++ b/src/types.h @@ -239,10 +239,10 @@ struct PieceTypeBitboardGroup { size_t i; this->boardlist = (Bitboard*)malloc(PIECE_TYPE_COUNT * sizeof(Bitboard)); - // By default, all squares are allowed for all pieces. + // By default, all bits are ZERO for all pieces. for (i = 0; i < PIECE_TYPE_COUNT; i++) { - this->boardlist[i] ^= ~this->boardlist[i]; + this->boardlist[i] ^= this->boardlist[i]; } } diff --git a/src/variants.ini b/src/variants.ini index 7245cc104..4e900ad10 100644 --- a/src/variants.ini +++ b/src/variants.ini @@ -126,7 +126,7 @@ # [PieceSet]: multiple piece types [letters defined for pieces, e.g., nbrq] # [CastlingRights]: set of castling rights [letters for castling rights as in FEN, e.g., KQkq] # [Bitboard]: list of squares [e.g., d4 e4 d5 e5]. * can be used as wildcard for files (e.g., *1 is the first rank) -# [PieceTypeBitboardGroup]: list of squares for different pieces. * can be used as wildcard for files and ranks (e.g., *1 is the first rank, ** means everywhere, a* means file a). The syntax is [(); [...]]. Pieces not specified are equivalent to "(**);". Example: P(e4,*1);Q(a1,a2,b*);K(**); +# [PieceTypeBitboardGroup]: list of squares for different pieces. * can be used as wildcard for files and ranks (e.g., *1 is the first rank, ** means everywhere, a* means file a). The syntax is [(); [...]]. Pieces not specified have no square. Example: P(e4,*1);Q(a1,a2,b*);K(**); # [Value]: game result for the side to move [win, loss, draw] # [MaterialCounting]: material counting rules for adjudication [janggi, unweighted, whitedrawodds, blackdrawodds, none] # [CountingRule]: makruk, cambodian, or ASEAN counting rules [makruk, cambodian, asean, none]