1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-29 16:23:09 +00:00

Move gamePly among the StateInfo data

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2010-05-31 11:47:15 +02:00
parent b7bc0d4c57
commit 9446dd6da3
2 changed files with 8 additions and 14 deletions

View file

@ -703,7 +703,7 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI
// pointer to point to the new, ready to be updated, state. // pointer to point to the new, ready to be updated, state.
struct ReducedStateInfo { struct ReducedStateInfo {
Key pawnKey, materialKey; Key pawnKey, materialKey;
int castleRights, rule50, pliesFromNull; int castleRights, rule50, gamePly, pliesFromNull;
Square epSquare; Square epSquare;
Score value; Score value;
Value npMaterial[2]; Value npMaterial[2];
@ -715,8 +715,7 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI
// Save the current key to the history[] array, in order to be able to // Save the current key to the history[] array, in order to be able to
// detect repetition draws. // detect repetition draws.
history[gamePly] = key; history[st->gamePly++] = key;
gamePly++;
// Update side to move // Update side to move
key ^= zobSideToMove; key ^= zobSideToMove;
@ -1061,7 +1060,6 @@ void Position::undo_move(Move m) {
assert(is_ok()); assert(is_ok());
assert(move_is_ok(m)); assert(move_is_ok(m));
gamePly--;
sideToMove = opposite_color(sideToMove); sideToMove = opposite_color(sideToMove);
if (move_is_castle(m)) if (move_is_castle(m))
@ -1111,7 +1109,6 @@ void Position::undo_move(Move m) {
pieceList[us][PAWN][index[to]] = to; pieceList[us][PAWN][index[to]] = to;
} }
// Put the piece back at the source square // Put the piece back at the source square
Bitboard move_bb = make_move_bb(to, from); Bitboard move_bb = make_move_bb(to, from);
do_move_bb(&(byColorBB[us]), move_bb); do_move_bb(&(byColorBB[us]), move_bb);
@ -1246,7 +1243,7 @@ void Position::do_null_move(StateInfo& backupSt) {
// Save the current key to the history[] array, in order to be able to // Save the current key to the history[] array, in order to be able to
// detect repetition draws. // detect repetition draws.
history[gamePly] = st->key; history[st->gamePly++] = st->key;
// Update the necessary information // Update the necessary information
if (st->epSquare != SQ_NONE) if (st->epSquare != SQ_NONE)
@ -1260,7 +1257,6 @@ void Position::do_null_move(StateInfo& backupSt) {
st->rule50++; st->rule50++;
st->pliesFromNull = 0; st->pliesFromNull = 0;
st->value += (sideToMove == WHITE) ? TempoValue : -TempoValue; st->value += (sideToMove == WHITE) ? TempoValue : -TempoValue;
gamePly++;
} }
@ -1282,7 +1278,7 @@ void Position::undo_null_move() {
// Update the necessary information // Update the necessary information
sideToMove = opposite_color(sideToMove); sideToMove = opposite_color(sideToMove);
st->rule50--; st->rule50--;
gamePly--; st->gamePly--;
} }
@ -1479,7 +1475,6 @@ void Position::clear() {
pieceList[0][i][j] = pieceList[1][i][j] = SQ_NONE; pieceList[0][i][j] = pieceList[1][i][j] = SQ_NONE;
sideToMove = WHITE; sideToMove = WHITE;
gamePly = 0;
initialKFile = FILE_E; initialKFile = FILE_E;
initialKRFile = FILE_H; initialKRFile = FILE_H;
initialQRFile = FILE_A; initialQRFile = FILE_A;
@ -1494,7 +1489,7 @@ void Position::clear() {
void Position::reset_game_ply() { void Position::reset_game_ply() {
gamePly = 0; st->gamePly = 0;
} }
@ -1672,8 +1667,8 @@ bool Position::is_draw() const {
return true; return true;
// Draw by repetition? // Draw by repetition?
for (int i = 4; i <= Min(Min(gamePly, st->rule50), st->pliesFromNull); i += 2) for (int i = 4, e = Min(Min(st->gamePly, st->rule50), st->pliesFromNull); i <= e; i += 2)
if (history[gamePly - i] == st->key) if (history[st->gamePly - i] == st->key)
return true; return true;
return false; return false;

View file

@ -100,7 +100,7 @@ enum Phase {
struct StateInfo { struct StateInfo {
Key pawnKey, materialKey; Key pawnKey, materialKey;
int castleRights, rule50, pliesFromNull; int castleRights, rule50, gamePly, pliesFromNull;
Square epSquare; Square epSquare;
Score value; Score value;
Value npMaterial[2]; Value npMaterial[2];
@ -323,7 +323,6 @@ private:
// Other info // Other info
Color sideToMove; Color sideToMove;
int gamePly;
Key history[MaxGameLength]; Key history[MaxGameLength];
int castleRightsMask[64]; int castleRightsMask[64];
StateInfo startState; StateInfo startState;