3 ms·
I don't believe stockfish cares about past moves at all besides castling/en passant. It's able to evaluate a board so effectivly that it doesn't need it.
by neaden 4y ago
I don't believe stockfish cares about past moves at all besides castling/en passant. It's able to evaluate a board so effectivly that it doesn't need it.
- dmurray 4y agoAnd repetitions. You may need to store 3x or 10x or in degenerate cases 100x the game state in order to check if the game may end by threefold repetition. A standard optimization in chess engines is to treat a single repetition as a draw, while in competitive rules the position must be repeated twice in order for either player to claim a draw. This works fine for playing against an infinitely good opponent, or against a clone of itself, which is how engines are usually tuned, because the repetition will be made if and only if the best evaluation under minimax is a draw, in which case a second repetition will also be optimal. But it's not maximally exploitative against a weaker opponent. It's possible in some positions to give the opponent the choice between repeating moves and making a mistake: you can do this "for free" by giving the opponent this choice and then playing a different continuation if the opponent correctly chooses to repeat. And when annotating a human game, this bug will cause the engine to scream that the human blundered if he allows a single repetition in a winning position, whether for this reason or to gain time on the clock.