Big Position renaming

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2012-04-02 18:21:17 +01:00
parent 37fa8adc2b
commit 0439a79566
7 changed files with 93 additions and 120 deletions

View File

@@ -50,7 +50,7 @@ struct StateInfo {
Key pawnKey, materialKey;
Value npMaterial[2];
int castleRights, rule50, pliesFromNull;
Score value;
Score psqScore;
Square epSquare;
Key key;
@@ -99,49 +99,33 @@ public:
const std::string to_fen() const;
void print(Move m = MOVE_NONE) const;
// The piece on a given square
Piece piece_on(Square s) const;
Piece piece_moved(Move m) const;
bool square_is_empty(Square s) const;
// Side to move
Color side_to_move() const;
// Bitboard representation of the position
// Position representation
Bitboard pieces() const;
Bitboard pieces(Color c) const;
Bitboard pieces(PieceType pt) const;
Bitboard pieces(PieceType pt, Color c) const;
Bitboard pieces(PieceType pt1, PieceType pt2) const;
Bitboard pieces(PieceType pt1, PieceType pt2, Color c) const;
// Number of pieces of each color and type
Piece piece_on(Square s) const;
Square king_square(Color c) const;
Square ep_square() const;
bool square_empty(Square s) const;
const Square* piece_list(Color c, PieceType pt) const;
int piece_count(Color c, PieceType pt) const;
// The en passant square
Square ep_square() const;
// Current king position for each color
Square king_square(Color c) const;
// Castling rights
// Castling
bool can_castle(CastleRight f) const;
bool can_castle(Color c) const;
bool castle_impeded(CastleRight f) const;
Square castle_rook_square(CastleRight f) const;
// Bitboards for pinned pieces and discovered check candidates
// Checking
bool in_check() const;
Bitboard checkers() const;
Bitboard discovered_check_candidates() const;
Bitboard pinned_pieces() const;
// Checking pieces and under check information
Bitboard checkers() const;
bool in_check() const;
// Piece lists
const Square* piece_list(Color c, PieceType pt) const;
// Information about attacks to or from a given square
// Attacks to/from a given square
Bitboard attackers_to(Square s) const;
Bitboard attackers_to(Square s, Bitboard occ) const;
Bitboard attacks_from(Piece p, Square s) const;
@@ -157,12 +141,14 @@ public:
bool is_capture(Move m) const;
bool is_capture_or_promotion(Move m) const;
bool is_passed_pawn_push(Move m) const;
// Piece captured with previous moves
Piece piece_moved(Move m) const;
PieceType captured_piece_type() const;
// Information about pawns
// Piece specific
bool pawn_is_passed(Color c, Square s) const;
bool pawn_on_7th(Color c) const;
bool opposite_bishops() const;
bool bishop_pair(Color c) const;
// Doing and undoing moves
void do_move(Move m, StateInfo& st);
@@ -180,32 +166,29 @@ public:
Key pawn_key() const;
Key material_key() const;
// Incremental evaluation
Score value() const;
// Incremental piece-square evaluation
Score psq_score() const;
Score psq_delta(Piece p, Square from, Square to) const;
Value non_pawn_material(Color c) const;
Score pst_delta(Piece piece, Square from, Square to) const;
// Other properties of the position
template<bool SkipRepetition> bool is_draw() const;
Color side_to_move() const;
int startpos_ply_counter() const;
bool opposite_colored_bishops() const;
bool both_color_bishops(Color c) const;
bool has_pawn_on_7th(Color c) const;
bool is_chess960() const;
int thread() const;
int this_thread() const;
int64_t nodes_searched() const;
void set_nodes_searched(int64_t n);
template<bool SkipRepetition> bool is_draw() const;
// Position consistency check, for debugging
bool pos_is_ok(int* failedStep = NULL) const;
void flip_me();
void flip();
// Global initialization
static void init();
private:
// Initialization helper functions (used while setting up a position)
// Initialization helpers (used while setting up a position)
void clear();
void put_piece(Piece p, Square s);
void set_castle_right(Color c, Square rfrom);
@@ -221,21 +204,14 @@ private:
Key compute_material_key() const;
// Computing incremental evaluation scores and material counts
Score pst(Piece p, Square s) const;
Score compute_value() const;
Score compute_psq_score() const;
Value compute_non_pawn_material(Color c) const;
// Board
// Board and pieces
Piece board[64]; // [square]
// Bitboards
Bitboard byTypeBB[8]; // [pieceType]
Bitboard byColorBB[2]; // [color]
// Piece counts
int pieceCount[2][8]; // [color][pieceType]
// Piece lists
Square pieceList[2][8][16]; // [color][pieceType][index]
int index[64]; // [square]
@@ -276,7 +252,7 @@ inline Piece Position::piece_moved(Move m) const {
return board[from_sq(m)];
}
inline bool Position::square_is_empty(Square s) const {
inline bool Position::square_empty(Square s) const {
return board[s] == NO_PIECE;
}
@@ -342,6 +318,7 @@ inline Square Position::castle_rook_square(CastleRight f) const {
template<PieceType Pt>
inline Bitboard Position::attacks_from(Square s) const {
return Pt == BISHOP || Pt == ROOK ? attacks_bb<Pt>(s, pieces())
: Pt == QUEEN ? attacks_from<ROOK>(s) | attacks_from<BISHOP>(s)
: StepAttacksBB[Pt][s];
@@ -396,16 +373,12 @@ inline Key Position::material_key() const {
return st->materialKey;
}
inline Score Position::pst(Piece p, Square s) const {
return pieceSquareTable[p][s];
inline Score Position::psq_delta(Piece p, Square from, Square to) const {
return pieceSquareTable[p][to] - pieceSquareTable[p][from];
}
inline Score Position::pst_delta(Piece piece, Square from, Square to) const {
return pieceSquareTable[piece][to] - pieceSquareTable[piece][from];
}
inline Score Position::value() const {
return st->value;
inline Score Position::psq_score() const {
return st->psqScore;
}
inline Value Position::non_pawn_material(Color c) const {
@@ -414,7 +387,7 @@ inline Value Position::non_pawn_material(Color c) const {
inline bool Position::is_passed_pawn_push(Move m) const {
return board[from_sq(m)] == make_piece(sideToMove, PAWN)
return type_of(piece_moved(m)) == PAWN
&& pawn_is_passed(sideToMove, to_sq(m));
}
@@ -422,20 +395,20 @@ inline int Position::startpos_ply_counter() const {
return startPosPly + st->pliesFromNull; // HACK
}
inline bool Position::opposite_colored_bishops() const {
inline bool Position::opposite_bishops() const {
return pieceCount[WHITE][BISHOP] == 1
&& pieceCount[BLACK][BISHOP] == 1
&& opposite_colors(pieceList[WHITE][BISHOP][0], pieceList[BLACK][BISHOP][0]);
}
inline bool Position::both_color_bishops(Color c) const {
// Assumes that there are only two bishops
return pieceCount[c][BISHOP] >= 2 &&
opposite_colors(pieceList[c][BISHOP][0], pieceList[c][BISHOP][1]);
inline bool Position::bishop_pair(Color c) const {
return pieceCount[c][BISHOP] >= 2
&& opposite_colors(pieceList[c][BISHOP][0], pieceList[c][BISHOP][1]);
}
inline bool Position::has_pawn_on_7th(Color c) const {
inline bool Position::pawn_on_7th(Color c) const {
return pieces(PAWN, c) & rank_bb(relative_rank(c, RANK_7));
}
@@ -446,21 +419,21 @@ inline bool Position::is_chess960() const {
inline bool Position::is_capture_or_promotion(Move m) const {
assert(is_ok(m));
return is_special(m) ? !is_castle(m) : !square_is_empty(to_sq(m));
return is_special(m) ? !is_castle(m) : !square_empty(to_sq(m));
}
inline bool Position::is_capture(Move m) const {
// Note that castle is coded as "king captures the rook"
assert(is_ok(m));
return (!square_is_empty(to_sq(m)) && !is_castle(m)) || is_enpassant(m);
return (!square_empty(to_sq(m)) && !is_castle(m)) || is_enpassant(m);
}
inline PieceType Position::captured_piece_type() const {
return st->capturedType;
}
inline int Position::thread() const {
inline int Position::this_thread() const {
return threadID;
}