1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43: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:
Marco Costalba 2009-05-20 15:12:45 +02:00
parent d3c4618b3a
commit 20c2a31464
2 changed files with 14 additions and 19 deletions

View file

@ -1425,10 +1425,9 @@ void Position::do_null_move(StateInfo& backupSt) {
// 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
// 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
// a backup storage not as a new state to be used.
backupSt.lastMove = st->lastMove;
backupSt.epSquare = st->epSquare;
backupSt.previous = st->previous;
st->previous = &backupSt;
@ -1462,7 +1461,6 @@ void Position::undo_null_move() {
assert(!is_check());
// Restore information from the our backup StateInfo object
st->lastMove = st->previous->lastMove;
st->epSquare = st->previous->epSquare;
st->previous = st->previous->previous;

View file

@ -21,7 +21,7 @@
#if !defined(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)
// Forcing value to bool 'true' or 'false' (performance warning)
@ -50,13 +50,12 @@
//// Constants
////
/// FEN string for the initial position:
const std::string StartPosition =
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
/// FEN string for the initial position
const std::string StartPosition = "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 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;
@ -67,11 +66,11 @@ const int MaxGameLength = 220;
/// Castle rights, encoded as bit fields
enum CastleRights {
NO_CASTLES = 0,
WHITE_OO = 1,
BLACK_OO = 2,
WHITE_OOO = 4,
BLACK_OOO = 8,
NO_CASTLES = 0,
WHITE_OO = 1,
BLACK_OO = 2,
WHITE_OOO = 4,
BLACK_OOO = 8,
ALL_CASTLES = 15
};
@ -95,31 +94,29 @@ struct StateInfo {
PieceType capture;
Bitboard checkersBB;
Move lastMove;
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
/// 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.
/// * A bitboard of all occupied squares.
/// * A bitboard of all checking pieces.
/// * A 64-entry array of pieces, indexed by the squares of the board.
/// * The current side to move.
/// * 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.
/// * The en passant square (which is SQ_NONE if no en passant capture is
/// possible).
/// * The squares of the kings for both sides.
/// * The last move played.
/// * Hash keys for the position itself, the current pawn structure, and
/// 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.
/// * A counter for detecting 50 move rule draws.