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:
parent
b7bc0d4c57
commit
9446dd6da3
2 changed files with 8 additions and 14 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue