mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 01:03:09 +00:00
Retire lastMove from Position class
Is not used in any way so remove. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
d3c4618b3a
commit
20c2a31464
2 changed files with 14 additions and 19 deletions
|
@ -1425,10 +1425,9 @@ void Position::do_null_move(StateInfo& backupSt) {
|
||||||
|
|
||||||
// Back up the information necessary to undo the null move to the supplied
|
// Back up the information necessary to undo the null move to the supplied
|
||||||
// StateInfo object. In the case of a null move, the only thing we need to
|
// StateInfo object. In the case of a null move, the only thing we need to
|
||||||
// remember is the last move made and the en passant square.
|
// remember is the en passant square.
|
||||||
// Note that differently from normal case here backupSt is actually used as
|
// Note that differently from normal case here backupSt is actually used as
|
||||||
// a backup storage not as a new state to be used.
|
// a backup storage not as a new state to be used.
|
||||||
backupSt.lastMove = st->lastMove;
|
|
||||||
backupSt.epSquare = st->epSquare;
|
backupSt.epSquare = st->epSquare;
|
||||||
backupSt.previous = st->previous;
|
backupSt.previous = st->previous;
|
||||||
st->previous = &backupSt;
|
st->previous = &backupSt;
|
||||||
|
@ -1462,7 +1461,6 @@ void Position::undo_null_move() {
|
||||||
assert(!is_check());
|
assert(!is_check());
|
||||||
|
|
||||||
// Restore information from the our backup StateInfo object
|
// Restore information from the our backup StateInfo object
|
||||||
st->lastMove = st->previous->lastMove;
|
|
||||||
st->epSquare = st->previous->epSquare;
|
st->epSquare = st->previous->epSquare;
|
||||||
st->previous = st->previous->previous;
|
st->previous = st->previous->previous;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#if !defined(POSITION_H_INCLUDED)
|
#if !defined(POSITION_H_INCLUDED)
|
||||||
#define POSITION_H_INCLUDED
|
#define POSITION_H_INCLUDED
|
||||||
|
|
||||||
// Disable a silly and noisy warning from MSVC compiler
|
// Disable some silly and noisy warning from MSVC compiler
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
|
|
||||||
// Forcing value to bool 'true' or 'false' (performance warning)
|
// Forcing value to bool 'true' or 'false' (performance warning)
|
||||||
|
@ -50,13 +50,12 @@
|
||||||
//// Constants
|
//// Constants
|
||||||
////
|
////
|
||||||
|
|
||||||
/// FEN string for the initial position:
|
/// FEN string for the initial position
|
||||||
const std::string StartPosition =
|
const std::string StartPosition = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
|
||||||
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
|
|
||||||
|
|
||||||
/// Maximum number of plies per game (220 should be enough, because the
|
/// Maximum number of plies per game (220 should be enough, because the
|
||||||
/// maximum search depth is 100, and during position setup we reset the
|
/// maximum search depth is 100, and during position setup we reset the
|
||||||
/// move counter for every non-reversible move):
|
/// move counter for every non-reversible move).
|
||||||
const int MaxGameLength = 220;
|
const int MaxGameLength = 220;
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,11 +66,11 @@ const int MaxGameLength = 220;
|
||||||
/// Castle rights, encoded as bit fields
|
/// Castle rights, encoded as bit fields
|
||||||
|
|
||||||
enum CastleRights {
|
enum CastleRights {
|
||||||
NO_CASTLES = 0,
|
NO_CASTLES = 0,
|
||||||
WHITE_OO = 1,
|
WHITE_OO = 1,
|
||||||
BLACK_OO = 2,
|
BLACK_OO = 2,
|
||||||
WHITE_OOO = 4,
|
WHITE_OOO = 4,
|
||||||
BLACK_OOO = 8,
|
BLACK_OOO = 8,
|
||||||
ALL_CASTLES = 15
|
ALL_CASTLES = 15
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -95,31 +94,29 @@ struct StateInfo {
|
||||||
|
|
||||||
PieceType capture;
|
PieceType capture;
|
||||||
Bitboard checkersBB;
|
Bitboard checkersBB;
|
||||||
Move lastMove;
|
|
||||||
StateInfo* previous;
|
StateInfo* previous;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/// The position data structure. A position consists of the following data:
|
/// The position data structure. A position consists of the following data:
|
||||||
///
|
///
|
||||||
/// * For each piece type, a bitboard representing the squares occupied
|
/// * For each piece type, a bitboard representing the squares occupied
|
||||||
/// by pieces of that type.
|
/// by pieces of that type.
|
||||||
/// * For each color, a bitboard representing the squares occupiecd by
|
/// * For each color, a bitboard representing the squares occupied by
|
||||||
/// pieces of that color.
|
/// pieces of that color.
|
||||||
/// * A bitboard of all occupied squares.
|
/// * A bitboard of all occupied squares.
|
||||||
/// * A bitboard of all checking pieces.
|
/// * A bitboard of all checking pieces.
|
||||||
/// * A 64-entry array of pieces, indexed by the squares of the board.
|
/// * A 64-entry array of pieces, indexed by the squares of the board.
|
||||||
/// * The current side to move.
|
/// * The current side to move.
|
||||||
/// * Information about the castling rights for both sides.
|
/// * Information about the castling rights for both sides.
|
||||||
/// * The initial files of the kings and both pairs of rooks. This is
|
/// * The initial files of the kings and both pairs of rooks. This is
|
||||||
/// used to implement the Chess960 castling rules.
|
/// used to implement the Chess960 castling rules.
|
||||||
/// * The en passant square (which is SQ_NONE if no en passant capture is
|
/// * The en passant square (which is SQ_NONE if no en passant capture is
|
||||||
/// possible).
|
/// possible).
|
||||||
/// * The squares of the kings for both sides.
|
/// * The squares of the kings for both sides.
|
||||||
/// * The last move played.
|
|
||||||
/// * Hash keys for the position itself, the current pawn structure, and
|
/// * Hash keys for the position itself, the current pawn structure, and
|
||||||
/// the current material situation.
|
/// the current material situation.
|
||||||
/// * Hash keys for all previous positions in the game (for detecting
|
/// * Hash keys for all previous positions in the game for detecting
|
||||||
/// repetition draws.
|
/// repetition draws.
|
||||||
/// * A counter for detecting 50 move rule draws.
|
/// * A counter for detecting 50 move rule draws.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue