@ -119,7 +119,7 @@ const std::array<PieceType, 120> ROOK_CHECK_TEST_BOARD = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , W_KING , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , W_QUEEN , B_ROOK , NONE , B_KING , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
@ -240,6 +240,7 @@ const std::vector<int> NO_EN_PASSANT_TEST_MOVES = {D6};
// Castling tests
const int CASTLING_POS = E1 ;
const int BCASTLING_POS = E8 ;
const std : : array < PieceType , 120 > CASTLING_BOARD = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
@ -255,9 +256,87 @@ const std::array<PieceType, 120> CASTLING_BOARD = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV
} ;
// Should NOT inclde D7
const std : : vector < int > CASTLING_MOVES = {
D1 , D2 , E2 , F2 , F1 ,
C1 , G1
D2 , E2 , F2 , F1 ,
D1 , G1 , C1
} ;
const std : : vector < int > BCASTLING_MOVES = {
D7 , E7 , F7 , F8 , D8 , G8 , C8
} ;
const std : : array < PieceType , 120 > CASTLING_CHECK_BOARD = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , B_ROOK , NONE , NONE , NONE , B_KING , NONE , NONE , B_ROOK , INV ,
INV , NONE , NONE , NONE , NONE , W_BISHOP , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , W_ROOK , NONE , NONE , NONE , W_KING , NONE , NONE , W_ROOK , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV
} ;
const std : : array < PieceType , 120 > BLACK_CHECK_BOARD1 = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , B_ROOK , NONE , NONE , NONE , NONE , B_KING , NONE , B_ROOK , INV ,
INV , NONE , NONE , NONE , NONE , W_BISHOP , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , W_ROOK , NONE , NONE , NONE , W_KING , NONE , NONE , W_ROOK , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV
} ;
const std : : array < PieceType , 120 > BLACK_CHECK_BOARD2 = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , B_ROOK , NONE , NONE , B_KING , NONE , NONE , NONE , B_ROOK , INV ,
INV , NONE , NONE , NONE , NONE , W_BISHOP , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , W_ROOK , NONE , NONE , NONE , W_KING , NONE , NONE , W_ROOK , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV
} ;
const int BLACK_CHECK_POS1 = D8 ;
const int BLACK_CHECK_POS2 = F8 ;
const std : : vector < int > BCASTLING_CHECK_MOVES = {
D7 , E7 , F7
} ;
// Check tests for king
const int KING_CHECK_TEST_POS = D6 ;
const int KING_CHECK_ROOK_POS = D5 ;
const std : : array < PieceType , 120 > KING_CHECK_TEST_BOARD = {
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , W_KING , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , B_ROOK , NONE , NONE , B_KING , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , NONE , NONE , NONE , NONE , NONE , NONE , NONE , NONE , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV ,
INV , INV , INV , INV , INV , INV , INV , INV , INV , INV
} ;
const std : : vector < int > KING_CHECK_TEST_MOVES = {
C7 , E7 ,
D5 ,
E6 , C6
} ;
const std : : vector < int > KING_CHECK_ROOK_MOVES = {
C5 , B5 , A5 ,
D6 , E5 , F5 ,
D4 , D3 , D2 , D1
} ;