/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008-2013 Marco Costalba, Joona Kiiski, Tord Romstad
+ Copyright (C) 2008-2014 Marco Costalba, Joona Kiiski, Tord Romstad
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
void undo_null_move();
// Static exchange evaluation
- int see(Move m, int asymmThreshold = 0) const;
+ int see(Move m) const;
int see_sign(Move m) const;
// Accessing hash keys
int game_ply() const;
bool is_chess960() const;
Thread* this_thread() const;
- int64_t nodes_searched() const;
- void set_nodes_searched(int64_t n);
+ uint64_t nodes_searched() const;
+ void set_nodes_searched(uint64_t n);
bool is_draw() const;
// Position consistency check, for debugging
// Helper functions
void do_castling(Square kfrom, Square kto, Square rfrom, Square rto);
- Bitboard hidden_checkers(Color c, Color kingColor) const;
+ Bitboard check_blockers(Color c, Color kingColor) const;
void put_piece(Square s, Color c, PieceType pt);
void remove_piece(Square s, Color c, PieceType pt);
void move_piece(Square from, Square to, Color c, PieceType pt);
Square castlingRookSquare[COLOR_NB][CASTLING_SIDE_NB];
Bitboard castlingPath[COLOR_NB][CASTLING_SIDE_NB];
StateInfo startState;
- int64_t nodes;
+ uint64_t nodes;
int gamePly;
Color sideToMove;
Thread* thisThread;
int chess960;
};
-inline int64_t Position::nodes_searched() const {
+inline uint64_t Position::nodes_searched() const {
return nodes;
}
-inline void Position::set_nodes_searched(int64_t n) {
+inline void Position::set_nodes_searched(uint64_t n) {
nodes = n;
}
}
inline Bitboard Position::discovered_check_candidates() const {
- return hidden_checkers(sideToMove, ~sideToMove);
+ return check_blockers(sideToMove, ~sideToMove);
}
inline Bitboard Position::pinned_pieces(Color c) const {
- return hidden_checkers(c, c);
+ return check_blockers(c, c);
}
inline bool Position::pawn_passed(Color c, Square s) const {
}
inline bool Position::advanced_pawn_push(Move m) const {
- return pieces(PAWN) & TheirHalf[sideToMove] & from_sq(m);
+ return type_of(moved_piece(m)) == PAWN
+ && relative_rank(sideToMove, from_sq(m)) > RANK_4;
}
inline Key Position::key() const {
inline bool Position::capture_or_promotion(Move m) const {
assert(is_ok(m));
- return type_of(m) ? type_of(m) != CASTLING : !empty(to_sq(m));
+ return type_of(m) != NORMAL ? type_of(m) != CASTLING : !empty(to_sq(m));
}
inline bool Position::capture(Move m) const {