]> git.sesse.net Git - stockfish/commitdiff
Change hidden checkers API
authorMarco Costalba <mcostalba@gmail.com>
Sat, 16 Jul 2011 08:56:34 +0000 (09:56 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 16 Jul 2011 09:12:46 +0000 (10:12 +0100)
After previous patch is no more needed to pass
the color, becuase it is always the side to move.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/movegen.cpp
src/position.cpp
src/position.h
src/search.cpp

index 5b8f2e9a8a1103410b740488cf2f88d793c72f25..145c60f1f362d90388925ea80071721d1d587d36 100644 (file)
@@ -213,7 +213,7 @@ MoveStack* generate<MV_NON_CAPTURE_CHECK>(const Position& pos, MoveStack* mlist)
   assert(pos.piece_on(ksq) == make_piece(opposite_color(us), KING));
 
   // Discovered non-capture checks
-  b = dc = pos.discovered_check_candidates(us);
+  b = dc = pos.discovered_check_candidates();
 
   while (b)
   {
@@ -318,7 +318,7 @@ MoveStack* generate<MV_LEGAL>(const Position& pos, MoveStack* mlist) {
   assert(pos.is_ok());
 
   MoveStack *last, *cur = mlist;
-  Bitboard pinned = pos.pinned_pieces(pos.side_to_move());
+  Bitboard pinned = pos.pinned_pieces();
 
   last = pos.in_check() ? generate<MV_EVASION>(pos, mlist)
                         : generate<MV_NON_EVASION>(pos, mlist);
index 43de667841764ee5fcf4bfe58e46955856a3d2d4..962fa87829407398fef17c0b26702927437d3443 100644 (file)
@@ -78,12 +78,11 @@ namespace {
 
 CheckInfo::CheckInfo(const Position& pos) {
 
-  Color us = pos.side_to_move();
-  Color them = opposite_color(us);
+  Color them = opposite_color(pos.side_to_move());
   Square ksq = pos.king_square(them);
 
-  dcCandidates = pos.discovered_check_candidates(us);
-  pinned = pos.pinned_pieces(us);
+  pinned = pos.pinned_pieces();
+  dcCandidates = pos.discovered_check_candidates();
 
   checkSq[PAWN]   = pos.attacks_from<PAWN>(ksq, them);
   checkSq[KNIGHT] = pos.attacks_from<KNIGHT>(ksq);
@@ -366,12 +365,12 @@ void Position::print(Move move) const {
 /// discovery check against the enemy king.
 
 template<bool FindPinned>
-Bitboard Position::hidden_checkers(Color c) const {
+Bitboard Position::hidden_checkers() const {
 
   // Pinned pieces protect our king, dicovery checks attack the enemy king
   Bitboard b, result = EmptyBoardBB;
-  Bitboard pinners = pieces(FindPinned ? opposite_color(c) : c);
-  Square ksq = king_square(FindPinned ? c : opposite_color(c));
+  Bitboard pinners = pieces(FindPinned ? opposite_color(sideToMove) : sideToMove);
+  Square ksq = king_square(FindPinned ? sideToMove : opposite_color(sideToMove));
 
   // Pinners are sliders, that give check when candidate pinned is removed
   pinners &=  (pieces(ROOK, QUEEN) & RookPseudoAttacks[ksq])
@@ -382,7 +381,7 @@ Bitboard Position::hidden_checkers(Color c) const {
       b = squares_between(ksq, pop_1st_bit(&pinners)) & occupied_squares();
 
       // Only one bit set and is an our piece?
-      if (b && !(b & (b - 1)) && (b & pieces(c)))
+      if (b && !(b & (b - 1)) && (b & pieces(sideToMove)))
           result |= b;
   }
   return result;
@@ -390,23 +389,21 @@ Bitboard Position::hidden_checkers(Color c) const {
 
 
 /// Position:pinned_pieces() returns a bitboard of all pinned (against the
-/// king) pieces for the given color. Note that checkersBB bitboard must
-/// be already updated.
+/// king) pieces for the side to move.
 
-Bitboard Position::pinned_pieces(Color c) const {
+Bitboard Position::pinned_pieces() const {
 
-  return hidden_checkers<true>(c);
+  return hidden_checkers<true>();
 }
 
 
 /// Position:discovered_check_candidates() returns a bitboard containing all
-/// pieces for the given side which are candidates for giving a discovered
-/// check. Contrary to pinned_pieces() here there is no need of checkersBB
-/// to be already updated.
+/// pieces for the side to move which are candidates for giving a discovered
+/// check.
 
-Bitboard Position::discovered_check_candidates(Color c) const {
+Bitboard Position::discovered_check_candidates() const {
 
-  return hidden_checkers<false>(c);
+  return hidden_checkers<false>();
 }
 
 /// Position::attackers_to() computes a bitboard containing all pieces which
@@ -497,7 +494,7 @@ bool Position::pl_move_is_legal(Move m, Bitboard pinned) const {
 
   assert(is_ok());
   assert(move_is_ok(m));
-  assert(pinned == pinned_pieces(side_to_move()));
+  assert(pinned == pinned_pieces());
 
   Color us = side_to_move();
   Square from = move_from(m);
@@ -688,7 +685,7 @@ bool Position::move_gives_check(Move m, const CheckInfo& ci) const {
 
   assert(is_ok());
   assert(move_is_ok(m));
-  assert(ci.dcCandidates == discovered_check_candidates(side_to_move()));
+  assert(ci.dcCandidates == discovered_check_candidates());
   assert(piece_color(piece_on(move_from(m))) == side_to_move());
 
   Square from = move_from(m);
index 9ed72393bfc4f6a595a93e467f6cb235d66ce956..2c94f42af9c32da7de2837d785da10de75e71f7e 100644 (file)
@@ -133,8 +133,8 @@ public:
   Square castle_rook_square(CastleRight f) const;
 
   // Bitboards for pinned pieces and discovered check candidates
-  Bitboard discovered_check_candidates(Color c) const;
-  Bitboard pinned_pieces(Color c) const;
+  Bitboard discovered_check_candidates() const;
+  Bitboard pinned_pieces() const;
 
   // Checking pieces and under check information
   Bitboard checkers() const;
@@ -230,7 +230,7 @@ private:
   void undo_castle_move(Move m);
 
   template<bool FindPinned>
-  Bitboard hidden_checkers(Color c) const;
+  Bitboard hidden_checkers() const;
 
   // Computing hash keys from scratch (for initialization and debugging)
   Key compute_key() const;
index 8b5f3b2b6d8c6171575a31f1cb3e3afcfe8327f3..94b34389178f0f18119d010bea23c8bdebf3d06e 100644 (file)
@@ -2023,7 +2023,7 @@ split_point_start: // At split points actual search starts from here
     while (   (tte = TT.probe(pos.get_key())) != NULL
            && tte->move() != MOVE_NONE
            && pos.move_is_pl(tte->move())
-           && pos.pl_move_is_legal(tte->move(), pos.pinned_pieces(pos.side_to_move()))
+           && pos.pl_move_is_legal(tte->move(), pos.pinned_pieces())
            && ply < PLY_MAX
            && (!pos.is_draw<false>() || ply < 2))
     {