|
|
|
@ -718,3 +718,60 @@ const std::vector<std::string> CHECKMATE_ROOK_NOTATION = {
|
|
|
|
|
"Rd7", "Rd6", "Rd5", "Rd4", "Rd3", "Rdd2", "Rd1#"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Extra checks on valid moves
|
|
|
|
|
const int KNIGHT_EXTRA1_POS = G5;
|
|
|
|
|
const std::array<PieceType, 120> EXTRA1_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, B_BISHOP, B_QUEEN, B_KING, B_BISHOP, B_KNIGHT, B_ROOK, INV,
|
|
|
|
|
INV, NONE, B_PAWN, B_PAWN, B_PAWN, NONE, NONE, B_PAWN, B_PAWN, INV,
|
|
|
|
|
INV, NONE, NONE, W_KNIGHT, NONE, NONE, B_PAWN, NONE, NONE, INV,
|
|
|
|
|
INV, B_PAWN, NONE, NONE, NONE, B_PAWN, W_PAWN, W_KNIGHT, NONE, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, NONE, W_PAWN, W_PAWN, INV,
|
|
|
|
|
INV, W_ROOK, W_KNIGHT, W_BISHOP, W_QUEEN, W_KING, W_BISHOP, 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::vector<std::string> KNIGHT_EXTRA1_NOTATION = {
|
|
|
|
|
"Nh3", "Nf3", "Ne4", "Ne6", "Nf7", "Nxh7"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const int KNIGHT_EXTRA2_POS = D4;
|
|
|
|
|
const std::array<PieceType, 120> EXTRA2_BOARD = {
|
|
|
|
|
INV,INV,INV,INV,INV,INV,INV,INV,INV,INV,
|
|
|
|
|
INV,INV,INV,INV,INV,INV,INV,INV,INV,INV,
|
|
|
|
|
INV, B_ROOK, B_KNIGHT, B_BISHOP, B_QUEEN, B_KING, B_BISHOP, B_KNIGHT, B_ROOK, INV,
|
|
|
|
|
INV, B_PAWN, B_PAWN, B_PAWN, B_PAWN, NONE, B_PAWN, B_PAWN, B_PAWN, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, NONE, B_PAWN, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, W_KNIGHT, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, INV,
|
|
|
|
|
INV, W_ROOK, W_KNIGHT, W_BISHOP, W_QUEEN, W_KING, W_BISHOP, W_KNIGHT, 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::vector<int> KNIGHT_EXTRA2_MOVES = {
|
|
|
|
|
B3, F3, F5, E6, C6, B5
|
|
|
|
|
};
|
|
|
|
|
const std::vector<std::string> KNIGHT_EXTRA2_NOTATION = {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const std::array<PieceType, 120> EXTRA3_BOARD = {
|
|
|
|
|
INV,INV,INV,INV,INV,INV,INV,INV,INV,INV,
|
|
|
|
|
INV,INV,INV,INV,INV,INV,INV,INV,INV,INV,
|
|
|
|
|
INV, B_ROOK, B_KNIGHT, B_BISHOP, B_QUEEN, B_KING, B_BISHOP, B_KNIGHT, B_ROOK, INV,
|
|
|
|
|
INV, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, 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_KNIGHT, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, INV,
|
|
|
|
|
INV, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, INV,
|
|
|
|
|
INV, W_ROOK, W_KNIGHT, W_BISHOP, W_QUEEN, W_KING, W_BISHOP, W_KNIGHT, W_ROOK, INV,
|
|
|
|
|
INV,INV,INV,INV,INV,INV,INV,INV,INV,INV,
|
|
|
|
|
INV,INV,INV,INV,INV,INV,INV,INV,INV,INV
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|