X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=5f19403035313eddc8e7694c4f9ce52f9bdc60d6;hp=2ede62feecd8d7b201baaa9044bf3c59d5241f1a;hb=f032ba54c58c85332351d7f345ac46e2112d0a2e;hpb=b35e59355134e34b00108c2ad58ea46df60eb301 diff --git a/src/position.cpp b/src/position.cpp index 2ede62fe..5f194030 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -599,19 +599,17 @@ bool Position::move_is_check(Move m, Bitboard dcCandidates) const { case BISHOP: return (dcCandidates && bit_is_set(dcCandidates, from)) - || ( direction_between_squares(ksq, to) != DIR_NONE - && bit_is_set(piece_attacks(ksq), to)); + || (direction_is_diagonal(ksq, to) && bit_is_set(piece_attacks(ksq), to)); case ROOK: return (dcCandidates && bit_is_set(dcCandidates, from)) - || ( direction_between_squares(ksq, to) != DIR_NONE - && bit_is_set(piece_attacks(ksq), to)); + || (direction_is_straight(ksq, to) && bit_is_set(piece_attacks(ksq), to)); case QUEEN: // Discovered checks are impossible! assert(!bit_is_set(dcCandidates, from)); - return ( direction_between_squares(ksq, to) != DIR_NONE - && bit_is_set(piece_attacks(ksq), to)); + return ( (direction_is_straight(ksq, to) && bit_is_set(piece_attacks(ksq), to)) + || (direction_is_diagonal(ksq, to) && bit_is_set(piece_attacks(ksq), to))); case KING: // Discovered check? @@ -1941,26 +1939,26 @@ bool Position::has_mate_threat(Color c) { void Position::init_zobrist() { - for(Piece p = WP; p <= BK; p++) - for(Square s = SQ_A1; s <= SQ_H8; s++) - zobrist[color_of_piece(p)][type_of_piece(p)][s] = genrand_int64(); + for (int i = 0; i < 2; i++) + for (int j = 0; j < 8; j++) + for (int k = 0; k < 64; k++) + zobrist[i][j][k] = Key(genrand_int64()); - zobEp[0] = 0ULL; - for(int i = 1; i < 64; i++) - zobEp[i] = genrand_int64(); + for (int i = 0; i < 64; i++) + zobEp[i] = Key(genrand_int64()); - for(int i = 15; i >= 0; i--) - zobCastle[(i&8) | (i&1) | ((i&2) << 1) | ((i&4) >> 1)] = genrand_int64(); + for (int i = 0; i < 16; i++) + zobCastle[i] = genrand_int64(); zobSideToMove = genrand_int64(); for (int i = 0; i < 2; i++) for (int j = 0; j < 8; j++) for (int k = 0; k < 16; k++) - zobMaterial[i][j][k] = (k > 0)? genrand_int64() : 0LL; + zobMaterial[i][j][k] = (k > 0)? Key(genrand_int64()) : Key(0LL); for (int i = 0; i < 16; i++) - zobMaterial[0][KING][i] = zobMaterial[1][KING][i] = 0ULL; + zobMaterial[0][KING][i] = zobMaterial[1][KING][i] = Key(0ULL); }