-/// Position::pretty() returns an ASCII representation of the position
-
-const string Position::pretty() const {
-
- std::ostringstream ss;
-
- ss << "\n +---+---+---+---+---+---+---+---+\n";
-
- for (Rank r = RANK_8; r >= RANK_1; --r)
- {
- for (File f = FILE_A; f <= FILE_H; ++f)
- ss << " | " << PieceToChar[piece_on(make_square(f, r))];
-
- ss << " |\n +---+---+---+---+---+---+---+---+\n";
- }
-
- ss << "\nFen: " << fen() << "\nKey: " << std::hex << std::uppercase
- << std::setfill('0') << std::setw(16) << st->key << "\nCheckers: ";
-
- for (Bitboard b = checkers(); b; )
- ss << to_string(pop_lsb(&b)) << " ";
-
- return ss.str();
-}
-
-
-/// Position::game_phase() calculates the game phase interpolating total non-pawn
-/// material between endgame and midgame limits.
-
-Phase Position::game_phase() const {
-
- Value npm = st->npMaterial[WHITE] + st->npMaterial[BLACK];
-
- npm = std::max(EndgameLimit, std::min(npm, MidgameLimit));
-
- return Phase(((npm - EndgameLimit) * 128) / (MidgameLimit - EndgameLimit));
-}
-
-
-/// Position::check_blockers() returns a bitboard of all the pieces with color
-/// 'c' that are blocking check on the king with color 'kingColor'. A piece
-/// blocks a check if removing that piece from the board would result in a
-/// position where the king is in check. A check blocking piece can be either a
-/// pinned or a discovered check piece, according if its color 'c' is the same
-/// or the opposite of 'kingColor'.
+/// Position::slider_blockers() returns a bitboard of all the pieces (both colors)
+/// that are blocking attacks on the square 's' from 'sliders'. A piece blocks a
+/// slider if removing that piece from the board would result in a position where
+/// square 's' is attacked. For example, a king-attack blocking piece can be either
+/// a pinned or a discovered check piece, according if its color is the opposite
+/// or the same of the color of the slider.